Pythonで、はてなAPIを使ってみる(1)

はてなのブックマークネットワークを利用して、ネットワーク分析をやろうと思っていたのだが、現実のネットワークデータを取得するときの常套手段のwgetを使えないことが判明した。(正確には、うちの研究室のサーバーは昔、wgetはてなさんにご迷惑をかけたことがあるらしく、wgetによるアクセスが禁止になっていました。はてなさんごめんなさい(><))
なので、推奨された方法でデータをとるにはやっぱりAPIしかないだろうと調べてみたら、やっぱりあった。
はてなブックマークのAPI - はてなブックマークヘルプ
正直、APIを利用することが初めてなので、あんまりイメージが湧かない単語があったりしましたが、それでも何とかpythonのモジュールを使ってデータの取得に成功しました。PythonはてなAPIを使う人の参考になればと思い、下に詳細をノートしておきます(><)

はてなブックマークエントリー情報取得API

はてなブックマークエントリー情報取得APIとは - はてなキーワード
仕様は上のリンク先に書いてあります。わかる人にはわかるんでしょうけど、僕にははじめ何の事だかさっぱりでした。
そもそも、ブックマークエントリーとは何なのかというと、
はてなブックマーク - シコウサクゴ()
↑こんな感じのものです(自分のブログに自分でブックマークしているという悲しい絵です)。ここに書いてある情報を取得できるのが今から取り上げるAPIです。

Pythonで取得

細かいことは説明できないので、とにかく使用例をあげます。
まず、使用するために2つのモジュールをインポートします。

In [68]: import urllib2

In [69]: import json

urllib2はページの取得に、jsonjson形式データの取得のために使います。
次に、urllib2とjsonを使って、データを取得します

In [75]: url = "http://d.hatena.ne.jp/yosshi71jp/"

In [76]: data = urllib2.urlopen("http://b.hatena.ne.jp/entry/json/%s" % url).read()

In [77]: info = json.loads(data.strip('(').rstrip(')'))

結局、これだけでデータを使いこなせるような形で取得することができました。
どんなデータを取得できたかを調べるために、infoのキーを調べてみます。

In [78]: info.keys()
Out[78]:
[u'count',
 u'screenshot',
 u'title',
 u'url',
 u'related',
 u'entry_url',
 u'eid',
 u'bookmarks']

ひとつひとつのキーの内容については割愛しますが、おおよその情報はとってこれるようです。特に、今回使いたいデータはbookmarksというキーの値で、bookmarksの値もまた辞書型になっており、

In [81]: info['bookmarks'][0]
Out[81]:
{u'comment': u'',
 u'tags': [],
 u'timestamp': u'2009/07/15 19:09:43',
 u'user': u'yosshi71jp'}

こんな感じで、ユーザーIDや登録時間などのデータを取得することができます。
私的な話としては、ここからそれぞれのユーザーのブックマークを調べていくので、もう一段階プログラムをやらなくてはいけないのですが、まあ焦らずゆっくりやります。
各ユーザーのブックマークを調べるにはrss形式のデータを利用するしかないのかと思っているのですが、何かアドバイスのある方、ぜひお願いします(><)