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パーサはすごく使いやすそうだ。