PythonでRSSリーダーを作りたい時があります。
そういった時はfeedparserモジュールを使用します。
feedparserは標準モジュールではないので、
pip等でインストールします。
pip install feedparser
使い方
RSSフィードのURLを与えてあげると、
FeedParserDictという辞書型に似た形で返してくれます。
ドキュメントを見るとほとんどのパース作業を裏でやってくれているので、
使用する分には何も考えないでも使えてしまいます。
import feedparser url = "feedのurl" rss = feedparser.parse(url) type(rss) # <class 'feedparser.FeedParserDict'> #辞書っぽいアクセス #feedのタイトルとデスクリプション print(rss['feed']['title']) print(rss['feed']['description'])
ほとんど辞書型と同様に扱えるので,
keyやvalueを確認して、必要なデータを取り出します。
多くの人が使うのは、記事なのでentries
を見たり、制御のためにupdated
などをみることが多いのではないでしょうか。
#keyを確認してみる for k in rss.keys(): print k # ['feed', 'status', 'updated', 'updated_parsed', 'encoding', 'bozo', 'headers', 'etag', 'href', 'version', 'entries', 'namespaces'] #記事にアクセスしてみる for content in rss["entries"]: print(content["title"])#各エントリーのタイトル print(content["link"])#各エントリーのurl
後はこれらのデータをデータベースに格納したり、
画面に表示すれば、RSSリーダーが作れます。
例えば、複数のサイトからとってきて保存したりするなら下記です。
import feedpaser #取得するurlのリスト target_list = [url_のリスト] #取得した記事のリスト articles = [] for url in target_list: rss = feedparser.parse(url) for content in rss["entries"]: articles.append( (url, content["title"], content["link"]) ) #articlesをcsvなどで保存
▼csvの保存などは下記 esu-ko.hatenablog.com