2015.3.20
MacでPythonも何回目でしょうか。だいぶPythonに慣れてきましたか?今回は楽天APIを使用して、任意のカテゴリーの楽天ランキング30位までを自動取得するPythonスクリプトを実行してみましょう。楽天APIのデベロッパー登録は簡単なので説明は割愛します。
#!/usr/bin/python2.7 # -*- coding: utf-8 -*- import requests import sys, codecs sys.stdout = codecs.getwriter("utf-8")(sys.stdout) gen_input = input("catID input here: ") url = "https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20120927?" st_load = { "genreId": gen_input, "applicationId": あなたのID, } r = requests.get(url, params=st_load) res = r.json() for i in res["Items"]: item = i["Item"] print u"順位: ",item["rank"],u"位" print u"商品名: ",item["itemName"] print u"URL: ",item["itemUrl"] print u"価格: ",item["itemPrice"], u"円", "\n"
このソースを写経してrakuapi.pyとして保存します。
ターミナルから実行するとカテゴリーID入力を求められますので、任意のカテゴリーIDを入力してエンターで表示されます。では、ソースの中身の解説をしていきましょう。
今回はrequestsモジュールをインポートし、楽天APIのURLにリクエストを送信しています。リクエストを送るURLは使用するAPI毎に異なりますが、この中身を触るだけで概ね問題なく改造が可能だと思います。
url = "https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20120927?"
これがURLです。ただこれだけでは、アプリIDなどが入っていませんから意味をなしません。そのため、rという変数を作りURLに付加するコードを記述しています。
st_load = { "genreId": gen_input, "applicationId": あなたのID, } r = requests.get(url, params=st_load)
この部分ですね。配列は順番が決まっているのでカテゴリーID+アプリIDでURLに結合します。
res = r.json() for i in res["Items"]: item = i["Item"] print u"順位: ",item["rank"],u"位" print u"商品名: ",item["itemName"] print u"URL: ",item["itemUrl"] print u"価格: ",item["itemPrice"], u"円", "\n"
最後このソース部分で受け取った値をプリントしています。色々改変して楽天APIを叩いてみましょう。