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