アメブロのRSSを解析する
環境
$ipython Python 2.7.3 (default, Sep 26 2012, 21:53:58) Type "copyright", "credits" or "license" for more information. IPython 0.13.1.rc2 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details.
rssfeedを取得する
feedparserをimport
他にもやり方はいろいろあるだろうけど、有名どころのfeedparserを使ってみた
>>> import feedparser
feedparserの属性を表示してみる
それなりに大きなモジュールだということがわかる・・・。
feedparser.ACCEPTABLE_URI_SCHEMES feedparser.ACCEPT_HEADER feedparser.BeautifulSoup feedparser.CharacterEncodingOverride feedparser.CharacterEncodingUnknown feedparser.EndBracketMatch feedparser.FeedParserDict feedparser.NonXMLContentType feedparser.PARSE_MICROFORMATS feedparser.PREFERRED_TIDY_INTERFACES feedparser.PREFERRED_XML_PARSERS feedparser.RESOLVE_RELATIVE_URIS feedparser.SANITIZE_HTML feedparser.SUPPORTED_VERSIONS feedparser.TIDY_MARKUP feedparser.ThingsNobodyCaresAboutButMe feedparser.USER_AGENT feedparser.UndeclaredNamespace feedparser.attrfind feedparser.base64 feedparser.binascii feedparser.cgi feedparser.chardet feedparser.charref feedparser.codecs feedparser.codepoint2name feedparser.copy feedparser.datetime feedparser.endbracket feedparser.entitydefs feedparser.entityref feedparser.gzip feedparser.incomplete feedparser.interesting feedparser.name2codepoint feedparser.parse feedparser.re feedparser.registerDateHandler feedparser.rfc822 feedparser.sgmllib feedparser.shorttag feedparser.shorttagopen feedparser.starttagopen feedparser.string feedparser.struct feedparser.tagfind feedparser.time feedparser.types feedparser.urllib feedparser.urllib2 feedparser.urlparse feedparser.warnings feedparser.xml feedparser.zlib
rssfeedをparseする
parseというのは、ある形式で掛かれた文書を解析すること。特に、その言語で扱うデータ型に落とし込むことを言うことのようだ。(主観も入っているが。)
今回は、私が運営しているアメブロの以下のファイルをparseしてみることにした。
http://rssblog.ameba.jp/one-shotlife/rss20.xml
>>> feed = feedparser.parse("http://rssblog.ameba.jp/one-shotlife/rss20.xml")
これで、指定したファイルをparse下オブジェクトが返却され、feedに格納される。型を気にしなくてもいいところがPythonの良いところ。
ちなみにfeedの型は、feedparser.FeedParserDictっていうクラスらしい。が、Pythonのインタラクティブ環境でプログラムしているときは、気にしなくてもいいと思う。
>>> type(feed) <class 'feedparser.FeedParserDict'>
feedの属性を表示する
feedは以下の属性を持っている。使い方はわからないまでも、いろいろ動かしてみれば、動作がわかる。ただ、clearとか、popとか、元のデータを破棄してしまいそうなものの扱いには注意。そういうのは最後にやること。
feed.clear feed.items feed.keys feed.values feed.copy feed.iteritems feed.pop feed.viewitems feed.fromkeys feed.iterkeys feed.popitem feed.viewkeys feed.get feed.itervalues feed.setdefault feed.viewvalues feed.has_key feed.keymap feed.update
feed.keymap
feedはかなりビッグなデータを扱っているので、一番最初にkeymapでどんなkeyがあるのかを見てみるといいと思う。
>>> for index,element in enumerate(feed.keymap,start=1): print str(index).rjust(2)," ",element ... 1 modified_parsed 2 description 3 copyright 4 date_parsed 5 url 6 items 7 tagline 8 modified 9 copyright_detail 10 issued_parsed 11 description_detail 12 issued 13 date 14 tagline_detail 15 guid 16 channel
上記から、今回は例としてentriesを表示してみる。
>>> for e in feed['entries']: ... print e['title'] ... アメブロアクセス解析でリンク元URLを見る。 なうでつぶやくだけでアクセス数アップ! この記事は表示できません 新年明けましておめでとうございます。今年もてきとうによろしくお願いします。 PR: 大手・注目の広告・Web会社の転職はマスメディアン サイドバ-ブックマーク管理 PR: なぜ今までなかったの?新しい資産運用方法できました。 インデックス数が247件ですってよ! アメブロにメール投稿する。 PR: チャージのいらない電子マネー、QUICPay メールからアメブロに投稿してみた。 アメブロの読者登録をおねだり。 Firebugでh1,h2,h3タグなどの要素を調査する。
アメーバってRSSに広告入れているんだよな・・・。
この三つは自分で書いた記事ではない。
- 作者: Mark Lutz
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2010/11/15
- メディア: ペーパーバック
- クリック: 13回
- この商品を含むブログ (2件) を見る