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を使って簡単にインストールできます。

Bash
 
pip install feedparser

 

feedparserを使ったフィード解析の基本

 

feedparserを使ってフィードを解析する基本的な手順を説明します。

 

URLを指定してフィードを解析する

 

解析したいフィードのURLをfeedparser.parse()関数に渡すだけです。

Python
 
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ファイルも解析できます。

Python
 
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、説明などの情報が含まれます。

Python
 
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は、フィード内の記事(エントリー)のリストです。各エントリーには、記事のタイトル、リンク、公開日時、要約などの情報が含まれています。

Python
 
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爆速講座