Description
HTML2RSS transforme n'importe quelle page HTML en flux RSS en décrivant les sélecteurs CSS à utiliser pour extraire les items (titre, lien, description, date, image). C'est le "RSS as code" : déclaratif, versionnable, testable.
Différence vs RSSHub : HTML2RSS = générique (config libre), RSSHub = catalogue de routes (maintenu par la communauté). HTML2RSS convient pour des sites de niche que RSSHub ne couvre pas.
Pour qui : développeurs qui veulent scraper un site précis avec un simple fichier YAML, et le maintenir dans Git.
Installation
Docker Compose
version: '3.8'
services:
html2rss:
image: html2rss/web:latest
container_name: html2rss
restart: unless-stopped
environment:
- HTML2RSS_CONFIG_DIR=/config
volumes:
- ./config:/config
labels:
- "traefik.enable=true"
- "traefik.http.routers.html2rss.rule=Host(`rss.example.com`)"
- "traefik.http.routers.html2rss.entrypoints=websecure"
- "traefik.http.routers.html2rss.tls.certresolver=letsencrypt"
Exemple de configuration (feeds.yml)
example_blog:
url: https://example.com/blog
channels:
- title: "Blog Example"
url: https://example.com/blog
items:
selector: "article.post"
title: "h2"
link:
selector: "a"
attribute: href
description: ".excerpt"
time: "time[datetime]"
time_format: "%Y-%m-%dT%H:%M:%S%z"
Alternatives
Open Source
- [[app-rsshub]] — Catalogue de routes
- [[app-rss-bridge]] — Bridges PHP
- FeedMe/Feedjira — Libraries Ruby
Propriétaires
- RSS.app — Service visuel
- Feed43 — Custom feeds visuels
- Distill.io — Monitor + export RSS
Sécurité
- Sélénium : optionnel, désactivé par défaut
- HTTP cache : ETag, Last-Modified respectés
- Auth basic : support du
Authorizationheader - Rate-limit : interne (par feed configurable)
