rss-reader について
rss-readerは、RSSおよびAtomフィードを取得・解析するスキルです。コマンドラインツールやPythonの例を使って、記事のタイトル、日付、説明、リンクを抽出できます。
主な機能
- 01RSSおよびAtomフィードの取得
- 02記事タイトルとリンクの抽出
- 03新着記事と日付の一覧表示
- 04CLIツールまたはPythonでの解析
活用シーン
- 01ブログの新着記事の確認
- 02ニュースソースの更新監視
- 03複数フィードの記事の集約
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ winsorllc/ upgraded-carnival --skill rss-readerインストール後、Claude Code で/rss-readerを入力して読み込まれたか確認します。
詳細
RSS リーダースキル
RSS/Atom フィードを読み取り、解析します。
使用する場面
- フィードから最新の記事を取得する
- ニュースソースを購読する
- ブログの更新を監視する
- 複数のフィードを集約する
フィード情報
フィードの詳細を取得する
# Get feed info
curl -s "https://example.com/feed.xml" | head -20
# Check if RSS or Atom
curl -s "https://example.com/feed.xml" | head -1
フィードを解析する
xmlstarlet を使用する
# Install if needed
# apt install xmlstarlet
# List all items
curl -s "feed.xml" | xmlstarlet sel -t -m "//item" -v "title" -n
# Get latest 5 titles
curl -s "feed.xml" | xmlstarlet sel -t -m "//item[position() <= 5]" -v "title" -n
xmllint を使用する
# Parse with xmllint
curl -s "feed.xml" | xmllint --format - 2>/dev/null | head -50
Python を使用する
# Simple feed parser
python3 -c "
import xml.etree.ElementTree as ET
import urllib.request
url = 'https://example.com/feed.xml'
data = urllib.request.urlopen(url).read()
root = ET# Find channel.fromstring(data)
for item in root.findall('.//item'):
title = item.find('title')
if title is not None:
print(title.text)
"
yq を使用する(利用できる場合)
# Convert RSS to YAML
curl -s "feed.xml" | yq -x '.rss.channel.item[]'
よく使うコマンド
フィード項目を一覧表示する
# Get all item titles
curl -s "feed.xml" | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//'
# With descriptions
curl -s "feed.xml" | grep -o '<title>[^<]*</title>\|<description>[^<]*</description>'
最新の項目を N 件取得する
# Latest 10 items with dates
curl -s "feed.xml" | grep -o '<item>.*</item>' | head -10 | \
while read item; do
echo "$item" | grep -o '<title>[^<]*</title>'
echo "$item" | grep -o '<pubDate>[^<]*</pubDate>'
echo "---"
done
リンクを抽出する
# Get all article links
curl -s "feed.xml" | grep -o '<link>[^<]*</link>' | sed 's/<link>//;s/<\/link>//'
例
Hacker News RSS
curl -s "https://news.ycombinator.com/rss" | \
grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//' | head -20
TechCrunch
curl -s "https://techcrunch.com/feed/" | \
grep -o '<title>[^<]*</title>' | head -15
GitHub トレンド
# GitHub doesn't have RSS, but you can use GitHub's API
curl -s "https://api.github.com/repos?sort=updated&per_page=10" | \
jq '.[].full_name'
フィード URL
一般的な RSS フィードのパターン:
- WordPress:
/feed/または/feed/rss/ - Medium:
/{username}/feed - YouTube:
https://www.youtube.com/feeds/videos.xml?channel_id={id} - Twitter:Nitter または RSSHub を使用します
注意事項
- RSS フィードによって要素名(item または entry)が異なる場合があります
- Atom フィードでは
<item>の代わりに<entry>を使用します - 一部のフィードでは User-Agent ヘッダーが必要です
- 過剰なリクエストを避けるため、フィードのキャッシュを検討してください
コメント
Markdown 対応