茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルプログラミング@つくば

PythonとfeedparserでRSSフィードをパースする

投稿日:2015年11月21日 更新日:

本記事では、Python 2.7を使っています。
執筆から時間が経っており、情報が古い可能性があります。

こんばんは、okuzawatsです。

Pythonを使ってRSSのフィードをパースしていこうと思います。
RSSフィードをElementTreeやBeautifulSoupを使って自力でパースするのはとても面倒くさいことがわかりました。
RSSフィードは、「feedparser」というモジュールを使ってパースするのが楽で良かったです。

feedparser 5.2.1 : Python Package Index

なお、Pythonは2.7系を使っています。

feedparserのインストール

feedparserを使ってRSSフィードをパースしていきます。

まずはfeedparserをインストールします。
ターミナルでコマンドを打ちます。
pipを使ってインストール。

pip install feedparser

管理者権限が無い場合は、sudoをつけてコマンドします。

sudo pip install feedparser

このあたりは、いつもどおりですね。

feedparserの使い方

いよいよ、feedparserを使ったRSSフィードのパースを実行します。

feedparser.parseメソッドにURLを渡してあげると、オブジェクトが生成されます。
その後、feed.titleとかfeed.linkとかのメソッドを使うとフィードのタイトルとかURLとかを出力してくれます。

こんな感じで出力されます。

okuzawatsのブログ
https://okuzawats.com

response.entriesというように書くと、個々のエントリーの内容にアクセスできます。

例えばこんな感じです。

出力結果。

ITを萌えキャラ化!IT専門用語の解説書「擬人化でまなぼ!」を支援しました https://okuzawats.com/moe-20151118 Wed, 18 Nov 2015 13:54:04 +0000
WordPressで広告などのランダム表示をしてくれるプラグイン「Ads by datafeedr.com」 https://okuzawats.com/ads-20151118 Wed, 18 Nov 2015 08:58:44 +0000
Docomoのガラケーの待ち受け画面に出てくる羊(iコンシェル)を消す方法 https://okuzawats.com/docomo-iconcier-20151117 Tue, 17 Nov 2015 14:34:23 +0000
(以下略)

注意が必要なのは、updatedで吐き出される日付と時刻の形式がブログごとにバラバラだという点ですね。

entry.updated_parsedとかにすると日時をパースしてくれます。
time.struct_timeで返ってきます。

15.3. time — Time access and conversions — Python 2.7.11rc1 documentation

Pythonでの日付や時間を操作するのはそんなに大変ではないです。
以下の記事を参考すればできると思います。

Pythonのdatetimeモジュールを使って日付と時刻を操作する

本記事では、Python 2.7を使っています。 執筆から時間が経っており、情報が古い可能性があります。 こんにちは、okuzawatsです。 この記事では、Pythonを使った日付と時刻の操作につい ...

続きを見る

feedparserを使えるようになったので、Pythonを使ってRSSの解析を簡単にできるようになりました。

あわせて読みたい本

-Python

Copyright© モバイルプログラミング@つくば , 2017 AllRights Reserved Powered by AFFINGER4.