rss-fetch について
rss-fetchは、コマンドラインでRSSとAtomフィードを取得・解析する手順をまとめたガイドです。タイトルやリンク、日付の抽出や、複数フィードの確認に役立ちます。
主な機能
- 01curlによるフィード取得
- 02xmllintとXPathによるXML解析
- 03タイトル、リンク、日付の抽出
- 04Hacker News RSSパラメーターの利用
- 05ループによる複数フィードの処理
活用シーン
- 01Hacker Newsの人気記事を確認
- 02キーワードやポイントでHNフィードを絞り込み
- 03スクリプトでフィード項目の情報を抽出
- 04フィードをファイルに保存して解析
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ okou-ai/ okou-skills --skill rss-fetchインストール後、Claude Code で/rss-fetchを入力して読み込まれたか確認します。
詳細
使い方
1. RSS フィードの生データを取得する
curl -s "https://hnrss.org/frontpage" | head -100
2. xmllint で RSS を解析する
RSS フィードからタイトルを抽出します。
curl -s "https://hnrss.org/frontpage" | xmllint --xpath '//item/title/text()' - 2>/dev/null
タイトルとリンクを抽出します。
curl -s "https://hnrss.org/frontpage" | xmllint --format - | grep -E '<title>|<link>' | head -20
3. 詳細情報を含む項目を取得する
curl -s "https://hnrss.org/frontpage" | xmllint --xpath '//item' - 2>/dev/null | xmllint --format - | head -50
4. Atom フィードを解析する
Atom フィードでは <item> の代わりに <entry> を使います。
curl -s "https://github.com/blog.atom" | xmllint --xpath '//entry/title/text()' - 2>/dev/null
人気の RSS フィード
| ソース | URL |
|---|---|
| Hacker News | https://hnrss.org/frontpage |
| HN Best | https://hnrss.org/best |
| TechCrunch | https://techcrunch.com/feed/ |
| Ars Technica | https://feeds.arstechnica.com/arstechnica/index |
| The Verge | https://www.theverge.com/rss/index.xml |
| Reddit(任意のサブレディット) | https://www.reddit.com/r/programming/.rss |
| GitHub Blog | https://github.blog/feed/ |
使用例
Hacker News のトップ記事を取得する
curl -s "https://hnrss.org/frontpage?count=10" | xmllint --xpath '//item/title/text()' - 2>/dev/null | tr '\n' '\n'
記事のリンクを取得する
curl -s "https://hnrss.org/frontpage?count=5" | grep -oP '<link>\K[^<]+' | grep -v hnrss
複数のフィードを取得する
FEEDS=(
"https://hnrss.org/frontpage?count=5"
"https://techcrunch.com/feed/"
)
for feed in "${FEEDS[@]}"; do
echo "=== $feed ==="
curl -s "$feed" | xmllint --xpath '//item/title/text()' - 2>/dev/null | head -5
echo ""
done
タイトル、リンク、日付を抽出する
curl -s "https://hnrss.org/frontpage?count=3" | xmllint --format - | awk '
/<item>/ { in_item=1 }
/<\/item>/ { in_item=0; print "---" }
in_item && /<title>/ { gsub(/<[^>]*>/, ""); print "Title: " $0 }
in_item && /<link>/ { gsub(/<[^>]*>/, ""); print "Link: " $0 }
in_item && /<pubDate>/ { gsub(/<[^>]*>/, ""); print "Date: " $0 }
'
フィードをファイルに保存する
curl -s "https://hnrss.org/frontpage" -o /tmp/hn-feed.xml
xmllint --xpath '//item/title/text()' /tmp/hn-feed.xml
HN RSS のオプション
Hacker News RSS(hnrss.org)は、次のパラメーターに対応しています。
| パラメーター | 説明 |
|---|---|
count=N | 項目数(デフォルトは 20) |
points=N | 最低ポイント数 |
comments=N | 最低コメント数 |
q=keyword | 検索キーワード |
# Top stories with 100+ points
curl -s "https://hnrss.org/frontpage?points=100&count=10"
# Search for "AI" topics
curl -s "https://hnrss.org/frontpage?q=AI&count=10"
RSS と Atom の形式の違い
| 要素 | RSS | Atom |
|---|---|---|
| コンテナー | <item> | <entry> |
| タイトル | <title> | <title> |
| リンク | <link> | <link href="..."> |
| 要約 | <description> | <summary> |
| 日付 | <pubDate> | <published> |
ガイドライン
- フィードの形式を確認する:まず
headを使って、RSS か Atom かを確認します - xmllint を使う:XML の XPath クエリに最適なツールです
- エラーに対処する:フィードによっては、応答が遅かったり、リクエスト数が制限されたりする場合があります
- robots.txt を遵守する:フィードに過剰なリクエストを送らないでください
- 結果をキャッシュする:フィードは毎秒更新されるわけではありません
コメント
Markdown 対応