内部の仕組み
実際のページのために設計されたパイプライン。
貼り付けた URL から配信されるフィードまで:検出、抽出、生成、重複排除、キャッシュ。各ステップは、ネイティブフィードがまったくない場所でも動作するよう設計されています。
汎用的な自動検出
FluxRSS の中核です。メインカラム内で、同じタグと同じクラス構成を持つ兄弟ノードの最大グループを探します。このグループがあなたの記事一覧です。メニュー、フッター、サブの囲み要素は除外されます。
ネイティブフィードの再利用
ページがすでにフィードを宣言している場合(link rel=alternate、/feed、/rss)や、フィードの URL を直接貼り付けた場合は、そのまま利用します — スクレイピングよりも信頼性が高いためです。
クリーンなフィールド抽出
各記事からタイトル、リンク、日付、画像、要約を抽出し、有効な RSS の <item> に正規化します。
guid による重複排除
各記事には一意の識別子があります。更新のたびに重複が除外されるため、読者が同じエントリを二度目にすることはありません。
スケジュール更新
プランに応じて 24 時間ごとから 15 分ごとまで。フィードは自動的に再スクレイピングされ、更新されます。
全文抽出
オプションで、FluxRSS が各記事を訪問し、要約を全文コンテンツで補強します。
デフォルトで安全
FluxRSS はユーザーが指定した URL を取得します。SSRF 対策ガードが各アドレスをサーバー側で検証し、リダイレクトのたびに再検証します。
- プライベート IP、ループバック、リンクローカルをブロック
- クラウドメタデータエンドポイント(169.254.169.254)を禁止
- スキームを http / https に限定
- タイムアウトとレスポンスサイズを制限
- リダイレクトのたびに再検証
# Generer un flux
curl -X POST https://fluxrss.app/api/generate \
-H "Authorization: Bearer <token>" \
-d '{"url":"https://lemonde.fr/faits-divers/"}'
# Reponse
{ "id": "a1b2c3", "url": "https://fluxrss.app/feeds/a1b2c3.xml" }
# Servir le flux (RSS 2.0 ou JSON Feed)
GET https://fluxrss.app/feeds/a1b2c3.xml?limit=20
GET https://fluxrss.app/feeds/a1b2c3.json