Web API関連(Python3.0)

前回の「Web API関連」は、正規表現を使ったところがいまいちだった。ウェブ上で探してみると、どうやらPython2.6から標準でjsonのパーサがライブラリに含まれるらしい。そこでUbuntu8.10のリポジトリに含まれていたPython3.0(rc1+)の環境で書き直してみた。

#!/usr/bin/python
#for Python3.0

from xml.etree import ElementTree
import xmlrpc.client
import urllib.request
import json

username = "geiinbashoku2"

# はてなブックマーク件数
srv = xmlrpc.client.ServerProxy('http://b.hatena.ne.jp/xmlrpc')
print(srv.bookmark.getTotalCount("http://d.hatena.ne.jp/" + username + "/"))

# livedoor reader 購読者数
d = urllib.request.urlopen("http://rpc.reader.livedoor.com/count?feedlink=http://d.hatena.ne.jp/" + username + "/rss")
print(d.read().decode())
d.close()

# はてなスター数
d = urllib.request.urlopen("http://s.hatena.ne.jp/blog.json/http://d.hatena.ne.jp/" + username + "/")
print(json.loads(d.read().decode())["star_count"])
d.close()

# livedoor clip数
srv = xmlrpc.client.ServerProxy('http://rpc.clip.livedoor.com/count')
values = srv.clip.getCount("http://d.hatena.ne.jp/" + username + "/").values()
print(list(values)[0])

# PageRank
d = urllib.request.urlopen("http://www.trynt.com/google-pagerank-api/v1/?u=http://d.hatena.ne.jp/" + username + "/")
print(ElementTree.parse(d).findall("//Pagerank")[0].text)
d.close()

jsonパーサはすごく使いやすそうだ。