Python:xml.etree.ElementTree, 外部 RDF。

前回は、ローカルな RDFファイルの item 要素から title を取り出した。
今回は、外部の RDF を扱ってみる。

前回のソースコードで変えたのは次の部分。

  rootTree=etree.parse(source)

parse メソッドは、内部のファイルを取り込めるが、外部ファイルは取り込めないようだ。

外部ファイルにアクセスするには、Google App Engine の場合、urlfetch がある。これを利用しよう。

そして、fetch したテキストに対して、etree の fromstring() メソッドを適用して、ElementTree オブジェクトを生成する。

サンプルで用いる外部 RDF は、何でもよいが、goo のランキング RDF を今回は使用する。

if __name__ == "__main__":
  from google.appengine.api import urlfetch

  import xml.etree.ElementTree as etree

  url='http://ranking.goo.ne.jp/rss/keyword/keyrank_all1/index.rdf'
  xml=urlfetch.fetch(url).content

  rootTree=etree.fromstring(xml)

  titles = rootTree.findall('.//{http://purl.org/rss/1.0/}title')
  for i in titles:
    print i.text.encode('utf-8','ignore')