PythonのRequestsモジュールでCiNii Articlesのデータ取得

いままでPythonの標準モジュールのurllib2を使っていましたが、Requestsモジュールがとても便利だったのでメモ。

インストール

pipやeasy_installでインストールできます。自分はMacPortsからインストールしました。

sudo port install py27-requests @1.2.3 

CiNii Articlesのデータ取得

import requests

baseurl="http://ci.nii.ac.jp/opensearch/search?"
query={"count":"200","format":"rss","journal":"図書館雑誌","api_key":********} #図書館雑誌掲載の論文をRSSの形式で200件取得
r=requests.get(baseurl,params=query)

print r.text #レスポンスの内容を表示

get関数にparamsという引数で辞書を渡せば、URLエンコーディングも含めて自動的に処理してくるのがいいですね。
以前は以下のようなコードを書いていました。別に標準モジュールでももっと簡潔にかけるとは思いますが…。

import urllib2,urllib

api_key=********
baseurl="http://ci.nii.ac.jp/opensearch/search?count=200&format=rss&journal="
query=urllib.quote_plus("図書館雑誌")
search_url=cinii_url+urlquery+"&start="+str(start)+api_key
url=urllib2.urlopen(search_url)

他にもポストでアクセスするときにはpost()というメソッドを使うといった直感的な命名、jsonで受け取ったデータを辞書やリストといったPythonのオブジェクトに変換してくれるといった便利な機能があるみたいです。

CiNiiにJSON出力機能が出たらもうちょっと追記するかも。