PythonでRSS/Atomフィードを楽々解析!feedparser入門
この記事では、Pythonライブラリのfeedparserを使って、RSSやAtomフィードを簡単に解析する方法を解説します。ブログの更新情報やニュースサイトの見出しなど、ウェブ上の最新情報を自動で取得・処理したいときにfeedparserは非常に役立ちます。
RSS/Atomフィードとは?
RSS (Really Simple Syndication) やAtom は、ウェブサイトの更新情報を配信するためのXMLベースのフォーマットです。これにより、ユーザーはWebブラウザで直接サイトにアクセスしなくても、専用のリーダーやアプリケーションを通じて最新のコンテンツを購読できます。
なぜフィードを解析するのか?
フィードを解析することで、以下のようなことが可能になります。
-
自動情報収集: 複数のサイトの最新情報を一元的に収集できます。
-
コンテンツキュレーション: 特定のキーワードに基づいて記事をフィルタリングしたり、要約を生成したりできます。
-
Webスクレイピングの代替: ウェブサイト全体の構造を解析することなく、効率的に更新情報を取得できます。
feedparserとは?
feedparserは、PythonでRSSおよびAtomフィードを解析するための強力で使いやすいライブラリです。多種多様なフィード形式に対応しており、複雑な処理を意識することなく、シンプルにフィード情報を取得できます。
feedparserのインストール方法
feedparserはpipを使って簡単にインストールできます。
pip install feedparser
feedparserを使ったフィード解析の基本
feedparserを使ってフィードを解析する基本的な手順を説明します。
URLを指定してフィードを解析する
解析したいフィードのURLをfeedparser.parse()関数に渡すだけです。
import feedparser
# 解析したいフィードのURL
feed_url = 'https://www.python.org/blogs/feed/'
# フィードを解析
feed = feedparser.parse(feed_url)
# フィードのタイトルを表示
print(f"フィードタイトル: {feed.feed.title}")
# 最新の記事をいくつか表示
print("\n--- 最新記事 ---")
for entry in feed.entries[:3]: # 最新3件のenrtyを表示
print(f"タイトル: {entry.title}")
print(f"URL: {entry.link}\n")
上記のコードを実行すると、指定したURLのフィードのタイトルと、最新の3件の記事のタイトルおよびURLが出力されます。
ローカルファイルからフィードを解析する
インターネット上のURLだけでなく、ローカルに保存されたXMLファイルも解析できます。
import feedparser
# ローカルのフィードファイルを解析 (例: 'local_feed.xml'というファイルがある場合)
# with open('local_feed.xml', 'r', encoding='utf-8') as f:
# feed_data = f.read()
# feed = feedparser.parse(feed_data)
# print(f"ローカルフィードタイトル: {feed.feed.title}")
コメントアウトされていますが、上記のようにローカルファイルを読み込んでfeedparser.parse()に渡すことで解析が可能です。
取得したフィードデータの活用
feedparser.parse()が返すfeedオブジェクトには、フィード全体の情報と個々の記事(エントリー)の情報が格納されています。
フィード全体の情報にアクセスする
feed.feedには、フィードのタイトル、URL、説明などの情報が含まれます。
import feedparser
feed_url = 'https://www.python.org/blogs/feed/'
feed = feedparser.parse(feed_url)
print(f"フィードタイトル: {feed.feed.title}")
print(f"フィードURL: {feed.feed.link}")
print(f"フィード説明: {feed.feed.description}")
個々の記事(エントリー)情報にアクセスする
feed.entriesは、フィード内の記事(エントリー)のリストです。各エントリーには、記事のタイトル、リンク、公開日時、要約などの情報が含まれています。
import feedparser
feed_url = 'https://www.python.org/blogs/feed/'
feed = feedparser.parse(feed_url)
for entry in feed.entries:
print(f"タイトル: {entry.title}")
print(f"URL: {entry.link}")
print(f"公開日時: {entry.published}")
print(f"要約: {entry.summary}\n")
まとめ
feedparserは、PythonでRSS/Atomフィードを簡単に解析するための強力なツールです。ウェブ上の最新情報を効率的に収集・処理したい場合に非常に役立ちます。ぜひこのライブラリを活用して、情報収集の自動化や新しいアプリケーション開発に挑戦してみてください!
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座


