FutureInsight.info

AI、ビッグデータ、ライフサイエンス、テクノロジービッグプレイヤーの動向、これからの働き方などの「未来」に注目して考察するブログです。

feedparser

feedparserは使っていてわかりやすい気持ちいいツールですね。

  • Universal Feed Parser

http://feedparser.org/

ものすごい直感的に扱えます。rssをリストと辞書に変換してしまうっていうコンセプトがいい。rssだろうが、atomだろうが関係なく処理してくれるし、マッパーとして直感的だと思う。

import feedparser
d = feedparser.parse("http://d.hatena.ne.jp/gamella/rss")
for entry in d.entries:
_空白_print entry["id"]

やりたかったことはこれでOKみたい。これを実行すると、

tomo@tomo-linux:~/python$ python feed.py
http://d.hatena.ne.jp/gamella/20060514#1147541517
http://d.hatena.ne.jp/gamella/20060514#1147617494
http://d.hatena.ne.jp/gamella/20060513#1147450172
http://d.hatena.ne.jp/gamella/20060511#1147361587
http://d.hatena.ne.jp/gamella/20060508#1147098343
http://d.hatena.ne.jp/gamella/20060508#1147015683
http://d.hatena.ne.jp/gamella/20060508#1147015092

あとは、上のidをauthorとかdateとかcontentとかにすればいいみたい。一応、keys()でだしてみました。こいつらがkeyです。

['summary_detail', 'updated_parsed', 'links', 'title', 'author', 'updated', 'summary', 'content', 'title_detail', 'link', 'id', 'tags']

これで、一通り勉強も終わったし、そろそろシステムの実装にはいりますかね。最初はcgiモジュールとcgi.tbモジュールで作って、あとでweb.pyに持って行く予定です。web.pyって、ソースは基本自分で書くからそういう使い方が合ってる気がします。

処理の流れ的には、feedparserでfeedを取得=>コンテンツの解析=>SQLObjectでDBに情報を格納=>解析結果をweb.pyで表示(SQLObjectを利用)という流れの実装にする予定です。webサービスは作ってなんぼなので、とりあえず、動くものをつくっちゃう予定です。ただ、デザインセンスがまるっきしないから、とりあえず動くもの作ってデザインはだれかに頼もうかな、、、