楽天のAPIとOpenAI APIを使って自動で記事を作成して、アフェリエイト報酬を獲得したいという希望を元に行った、楽天のランキングAPIの取得方法のメモ(簡単)を残しておきます。最終的には、記事の自動化のところまで書けたらいいなぁと思ったりしてます。
Rakuten Web Service
まず、Rakuten Web Service への登録を行います。
登録方法は、こちらの記事に詳しく記載されていますので参照してください。
API 呼び出し
前提として以下の環境で行います。
・AlmaLinux release 8.9
・Python 3.11.5
今回はAPIの紹介ですので、これらの環境構築には触れませんが、準備方法としては、Vagrant等の仮想環境を構築して、行うことが望ましいと思います。
Vagrantの記事はネット溢れているのでそちらを参照ください。
まず、必要な機能をインポートしておきます。
$ python3 -m venv venv
$ . venv/bin/activate
$ pip install requests
次に以下のプログラムを作ります。
# callRakutenAPI.py
import requests
def fetch_rakuten_ranking(app_id, category_id, affiliate_id):
url = f'https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20170628?applicationId={app_id}&genreId={category_id}&affiliateId={affiliate_id}'
response = requests.get(url)
ranking_items = response.json().get('Items', [])
# 商品情報を辞書型のリストとして整理
simplified_items = []
for idx, item in enumerate(ranking_items[:10], start=1): # TOP10の商品のみを処理
item_data = {
'rank': idx,
'itemName': item['Item']['itemName'],
'itemPrice': item['Item']['itemPrice'],
'itemUrl': item['Item']['itemUrl'],
'imageUrl': item['Item']['mediumImageUrls'][0]['imageUrl'] if item['Item']['mediumImageUrls'] else None,
'affiliateUrl': item['Item']['affiliateUrl'],
'reviewCount': item['Item']['reviewCount'],
'reviewAverage': item['Item']['reviewAverage'],
'description': item['Item']['itemCaption']
}
simplified_items.append(item_data)
return simplified_items
if __name__ == '__main__':
app_id = 'xxxxx'
affiliate_id = 'xxxxxx'
category_id = 'xxxxxx'
ranking_data = fetch_rakuten_ranking(app_id, category_id, affiliate_id)
print(ranking_data)
app_id(Application ID)は、Rakuten Web Service で登録した際に取得した値を指定します。
affiliate_idも同様です。
category_idについては、楽天のページから取得する必要があります。
例えば、パソコンのランキングデータが欲しい場合は、楽天>ジャンル>PC・スマホ・通信>パソコンを選びURLに記載されているカテゴリID(赤枠)を指定します。
これらの情報を入力したらプログラムを実行します。
すると以下のよう結果が得られると思います。ランキングTOP10を取得するようにプログラムの方に設定してあるので、10件分のデータが得られるはずです。
なお、以下のサンプルは取得データ量が多いため省略しています。
$ python3 callRakutenAPI.py
[{'rank': 1, 'itemName': '【スーパーSALE期間中エントリーでP10倍】【957g超軽量】Ryzen7 16GBメモリ 512GB SSD HP Pavilion Aero 13 ノートパソコン .....
,{'rank': 2, 'itemName': '【楽天ランキング1位!】ノートパソコン ノートPC 新品 Office付き 初心者向け Windows11 ....
,{'rank': 3, 'itemName': '【エントリーして最大10000ポイント】【新品】第11世代CPU搭載 パソコン 14インチワイド液晶 ....
....
これで楽天のランキングAPIからのデータ取得は終わりです。
このデータをOpenAI APIに食わして商品に関する説明文を作ってもらったりして、記事を自動生成化できたらいいなと模索中。