今回は、Pythonを使ってRSSフィードから記事情報を取得する方法について解説します。
やりたいこと
- RSSフィードを読み込んで記事情報を取得する
- 記事のタイトル・リンク・公開日・要約を抽出する
- 記事でデータの整形する
RSSとは?
RSSとは、「Really Simple Syndication」または「Rich Site Summary」、「RDF Site Summary」の略で、Webサイトの更新情報を自動的に配信するための技術・フォーマットのことです。主にブログやニュースサイト、ポッドキャストなど、定期的に情報が更新されるサイトで利用されます。
RSSはXMLという形式で書かれており、以下のような情報が含まれています:
- 記事のタイトル
- 公開日時
- 概要
- 記事のURL
- 著者名やカテゴリ
これらの情報をまとめたRSSフィードを提供することで、外部のツールやアプリがWebサイトの更新を検知し、自動的に情報を取得できます。
なお、RSSとよく似たフォーマットとして「Atom」という規格もあります。こちらもXML形式で記述されています。多くのRSSリーダーは、RSSとAtomの両方に対応しています。
Feedparser
FeedparserはRSSフィードやAtomフィードを簡単に解析できる定番ライブラリです。FeedparseはRSS・Atomの両方のフォーマットに対応しています。
Feedparseのインストール
$ pip install feedparser
RSSを取得する基本コード
import feedparser
# URLはRSSに対応しているページを設定
rss_url = "https://hogehoge.com/services/xml/rss/HomePage.xml"
feed = feedparser.parse(rss_url)
print(f"記事数: {len(feed.entries)}\n")
各記事の情報を表示
for entry in feed.entries:
print("タイトル:", entry.get("title"))
print("リンク:", entry.get("link"))
print("公開日:", entry.get("published", "なし"))
print("要約:", entry.get("summary", "なし"))
print("-" * 40)
The Japan Timesの記事を取得
The Japan TimesのURLを指定して、英語ニュースを取得してみます。
import feedparser
# URLはRSSに対応しているページを設定
rss_url = "https://www.japantimes.co.jp/feed/"
feed = feedparser.parse(rss_url)
print(f"記事数: {len(feed.entries)}")
for entry in feed.entries:
print("タイトル:", entry.get("title"))
print("リンク:", entry.get("link"))
print("公開日:", entry.get("published", "なし"))
print("要約:", entry.get("summary", "なし"))
print("-" * 40)
【出力結果】
上記のコードを実行した結果の一部を示します。
記事数: 30
タイトル: Sasuke Haraguchi’s provocative soundtracks for digital natives
リンク: https://www.japantimes.co.jp/culture/2025/04/25/music/sasuke-haraguchi/
公開日: Fri, 25 Apr 2025 08:00:00 +0900
要約: The 21-year-old electronic producer and artist taps into the chaotic nature of modern online life.
----------------------------------------
タイトル: Japanese supermarket sales up for fifth straight year in fiscal 2024
リンク: https://www.japantimes.co.jp/business/2025/04/24/japanese-supermarket-sales-up-5thyear/
公開日: Thu, 24 Apr 2025 19:54:00 +0900
要約: Sales in value terms grew on higher prices including for food, especially rice and vegetables, but sales in volume terms continued to decline.
----------------------------------------
タイトル: LDP plans to submit pension reform bill in mid-May
リンク: https://www.japantimes.co.jp/news/2025/04/24/japan/ldp-pension-reform-bill-mid-may/
公開日: Thu, 24 Apr 2025 19:53:00 +0900
要約: Pension system reform is a key issue in the second half of the ongoing ordinary parliament session.
----------------------------------------
このようにタイトルやリンクなどを取得することができます。自作のシステムに取り入れるなどしたら面白いかもですね!😁
コメント