利益商品のリサーチ自動化を実現するために、リサーチしたい商品ページのリストを作成する方法です。
商品リスト作成の流れ
今回は楽天ウェブサービスを使って商品リストを作成します。特に、楽天商品ランキングAPIを使うことで、売れ筋商品の商品リストを作成することが出来ます。
楽天ウェブサービスの利用登録
- 楽天ウェブサービスのページにアクセスします。
https://webservice.rakuten.co.jp/ - 下の方へスクロールして、「新規アプリ登録」を押します。
- 利用規約を確認し、楽天ウェブサービスを使いたい「アプリ名」と「アプリURL」を記入します。アプリ名は適当(例:楽天連携アプリ)、アプリURLはブログのURLなどを記入しておけば問題ないと思います。なお、これらは後から変更も可能です。
- すぐに登録が完了します。プログラムから楽天ウェブサービスにアクセスする際に、ここで発行された「アプリID」が必要となります。
楽天ウェブサービスのAPIテスト
- 楽天ウェブサービスのページにある「APIテストフォーム」を押します。
- 左側のメニューから「楽天市場ランキングAPI」を選択し、右側のAPIテストフォーム内の「アプリID」欄に、先ほど取得した自分のアプリIDを記入します。
- 「URL」欄にはアクセスする際のURLが表示されています。「送信」欄の「Get」ボタンを押すと、一番下に検索結果が返ってきます。返却形式は「json」と「xml」を選択できます。表示例は「json」での検索結果です。
商品リストの作成
検索結果のフォーマットは楽天ウェブサービスのAPI詳細をご確認ください。全体が「Items」タグで囲われており、「Item」タグで記載されている個別商品が「Items」の中に並んでいます。取得したい商品ページのURLは「Item」の中の「itemUrl」タグに記載されています。
JSON形式の応答データからURLを抽出するためのプログラムは以下のようになります。
items = json_data['Items']
for item in items:
item_url = item.get('Item').get('itemUrl')
1行目:
全体の「Items」タグを取得します。
2行目:
個別商品ごと(Itemごと)に処理するためのループ文です。
3行目:
「Item」の下の「itemUrl」の値を取得します。
Pythonサンプルプログラム
楽天商品ランキングAPIを使った商品リストを作成するサンプルプログラムです。
import requests
# URLにGETリクエストを送信
APP_ID = 'XXXXX' # アプリID
GENRE_ID = '100026' # ジャンルID、今回はパソコン・周辺機器(100026)を指定
url = 'https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20220601?format=json&genreId='\
+ GENRE_ID + '&applicationId=' + APP_ID + '&page='
# 商品ページのURLを格納する配列を空の状態で準備
item_url_list = []
# 1ページ目~2ページ目をループ文で処理
for page in range(1, 3):
# 楽天ウェブサービスの結果を取得する
response = requests.get(url+str(page))
# リクエストが成功したか確認
if response.status_code == 200:
try:
# JSONデータを取得
json_data = response.json()
# JSONデータ内のItems配列をパース
items = json_data['Items']
for item in items:
item_url = item.get('Item').get('itemUrl')
item_url_list.append(item_url)
except ValueError:
print("レスポンスからJSONデータを解析できませんでした")
else:
print(f"リクエストが失敗しました。ステータスコード: {response.status_code}")
# 取得した商品ページのURLをコンソールに出力する
print(item_url_list)
以下はサンプルプログラムの実行結果です。
サンプルプログラムの動かし方は以下の記事を参考にしてください。