103 lines
3.1 KiB
Markdown
103 lines
3.1 KiB
Markdown
---
|
|
title: HTML2RSS
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, rss, app-marathon-batch-b]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=RSS&app=html2rss, https://html2rss.github.io/html2rss/]
|
|
---
|
|
|
|
# 📡 HTML2RSS
|
|
|
|
> **Générateur de flux RSS à partir de pages HTML** : configuration en YAML, sélecteurs CSS pour extraire titres/liens/descriptions, support full-text scraping.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [html2rss.github.io](https://html2rss.github.io/html2rss/) |
|
|
| **GitHub** | [html2rss/html2rss](https://github.com/html2rss/html2rss) |
|
|
| **License** | MIT |
|
|
| **Langage** | Ruby |
|
|
| **Étoiles GitHub** | 0.3k ⭐ |
|
|
| **Catégorie** | [[cat-rss|RSS]] |
|
|
|
|
## 📝 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
|
|
|
|
```yaml
|
|
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)
|
|
|
|
```yaml
|
|
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 `Authorization` header
|
|
- **Rate-limit** : interne (par feed configurable)
|
|
|
|
## 📚 Ressources
|
|
- [Documentation](https://html2rss.github.io/html2rss/)
|
|
- [GitHub](https://github.com/html2rss/html2rss)
|
|
- [Exemples](https://github.com/html2rss/html2rss/tree/main/spec/fixtures)
|
|
|
|
## Pages Liées
|
|
- [[cat-rss]] — Catégorie RSS
|
|
- [[app-rsshub]] — Concurrent
|
|
- [[recettes-docker-compose]] — Templates Docker
|