PythonのRequestsモジュールで楽天APIを使ってみる

PythonでHTTPを扱うときはurllib、urllib2モジュールを使うものだと思っていたが、最近はRequestsモジュールを使うらしいことがわかった。試しにRequests: 人間のためのHTTP ? requests-docs-ja 1.0.4 documentationを読みながら、楽天APIで使ってみた。

実験環境
ThinkPad X200
Windows7 Professional 64bit
Python 2.7.3

まずは楽天ウェブサービス: API一覧でAPIを何にするかざっと見る。楽天商品検索API (version:2014-02-22)を使ってみることにした。

使い方は楽天ウェブサービス: 楽天商品検索API(version:2014-02-22) | API一覧に書いてある。

入力パラメータの数はたくさんあるけど、必須なのはアプリID(applicationId)と検索キーワード(keyword)の2つだけ。あとは、1ページあたりの取得件数(hits)を10に、価格が安い順に並べる(sort=+itemPrice)ことにする。

APIを叩いて戻ってきたJSON形式のレスポンスから、検索結果の総商品数(count)と商品名(itemName)、商品価格(itemPrice)を表示させる。

# -*- coding: utf-8 -*-

import requests

url = 'https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222'

payload = {
    'applicationId': [アプリID],
    'keyword': 'Python',
    'hits': 10,
    'sort': '+itemPrice',
    }

r = requests.get(url, params=payload)

resp = r.json()
print "num of kensaku =",resp['count']
print '-'*40

for i in resp['Items']:
    item = i['Item']
    print item['itemName']
    print item['itemPrice'], 'yen'

実行した結果は以下のとおり。

num of kensaku = 7922
----------------------------------------
【中古】マジックザギャザリング/英語版/C/Visions(ビジョンズ)/黒 [C] : Python/ニシキヘビ【10P13Jun14】【画】
60 yen
【中古】マジックザギャザリング/日本語版/C/Visions(ビジョンズ)/黒 [C] : ニシキヘビ/Python【10P13Jun14】【画】
60 yen
Python: Quick Reference - Cheat Sheet - Print & LaminateDigital Print & Laminate-【電子書籍】
196 yen
フォトアンクルソックス◎PYTHON/ニシキヘビ☆かわいい靴下通販☆【メール便可】●【楽ギフ_包装選択】
199 yen
PYTHON/ニシキヘビ◎フォトアンクルソックス☆かわいい靴下通販☆/シネマコレクション【メール便可】【RCP】
199 yen
【中古】 Flashy Python / Skin And Bones 【CD】
216 yen
【中古】 Flashy Python / Skin And Bones 【CD】
216 yen
Absolute Beginner’s Guide to Python 2.6 Programming-【電子書籍】
294 yen
Beginning Python Programming-【電子書籍】
294 yen
Possum and Python-【電子書籍】
304 yen

Python

Posted by skw