【楽天】 ランキングAPIを使った商品情報の取得

AI

楽天の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に食わして商品に関する説明文を作ってもらったりして、記事を自動生成化できたらいいなと模索中。

タイトルとURLをコピーしました