見出し画像

Pythonで楽天APIを使った商品情報取得・アフィリエイトリンク作成・スプレッドシート管理ガイド【初心者向け】

1.はじめに


Pythonを使った楽天APIの活用方法を紹介します。本記事では、楽天APIを使用して商品情報を取得し、楽天アフィリエイトリンクを生成する方法についてステップバイステップで説明します。初心者でも理解できるように丁寧に解説していきます。

2.楽天APIとは?


APIの概要

楽天APIとは、楽天市場の商品情報を取得するためのツールです。楽天APIを使用すると、商品検索やカテゴリ情報をプログラムから取得することができ、ブログやインスタでの商品紹介アフィリエイトの運営に非常に便利です。

APIの利便性

楽天APIを利用することで、最新の商品情報を簡単に取得し、アフィリエイトリンクを生成することができます。プログラムで定期的に実行し管理することで、商品情報とアフィリエイトリンクを効率的に得ることが可能になります。

3.必要な準備


楽天APIの登録手順

楽天APIを利用するには、まず楽天の開発者向けポータルに登録し、アプリケーションID(APIキー)を取得する必要があります。

  1. 楽天APIの開発者サイトにアクセスします。

  2. アカウントを作成し、ログインします。

  3. 「アプリID」を取得するためにNew Appをクリックします。

  4. アプリ名、アプリURLを入力して「Agree to the terms of service & make a new program」ボタンをクリックします。

  5. 「アプリID」、「アプリケーションシークレット」、「アフィリエイトID」が表示されるので、メモしましょう。

以上で楽天APIを使う準備は完了です。


4.開発環境のセットアップ


Google Colaboratoryの利用

本記事では、Google Colaboratoryを使用します。Google Colaboratoryはクラウド上でPythonを実行できる環境で、設定が簡単です。

GoogleドライブからColaboratoryを開く方法

  1. Googleドライブにアクセスします。

  2. 任意のフォルダから「右クリック > その他 > Google Colaboratory」または左上の「新規 > その他 > Google Colaboratory」を選択して開きます。
    ※Google Colaboratoryが項目になければ、「右クリック > その他 > アプリを追加」で検索してください

Googleスプレッドシートの認証設定

Google Colaboratoryからスプレッドシートに書き込むには、gspreadライブラリを使う方法が簡単です。Google Colaboratoryにはgspreadがあらかじめインストールされているのでpip installコマンドなど実行は不要です。

他の人のGoogle Colaboratoryから自分のスプレッドシートにアクセスを防ぐため、スプレッドシートへのプログラムからの書き込みには認証が必要です。以下の手順で認証を行います。

①認証用コードを実行

# 認証のためのコード
from google.colab import auth
auth.authenticate_user()
import gspread
from google.auth import default
creds, _ = default()
gc = gspread.authorize(creds)

②許可するかどうかを問われるので「Allow(許可)」をクリックします。
③Google認証情報の入力を求められるので、自分のGoogleアカウントでログイン
④Googleサービスへのアクセス権を許可します。
⑤認証完了

これでGoogle Colaboratoryからスプレッドシートへの操作ができるようになりました。

下記コードを実行してスプレッドシートを作成してみましょう。

## スプレッドシートの作成
filename = "楽天api情報集約"
ss = gc.create(filename)
print(ss.title)

先ほどログインしたGoogleアカウントのドライブに「楽天api情報集約」のスプレッドシートがあれば成功です。

Google Colaboratoryからスプレッドシートへの書き込み設定は下記の記事を参考にしました。

5.楽天APIを使った商品情報の取得


楽天APIを使って商品情報を取得し、それに基づいてアフィリエイトリンクを生成し、Googleスプレッドシートに書き込む方法について説明します。

以下のサンプルコードをコピペして実行してください
「API_KEY」は2章で設定したアプリケーションIDを入れてください。
「AFFILIATE_ID」はご自身の楽天アフィリエイトIDを入れてください

import requests

# 楽天APIのエンドポイントとAPIキー
API_ENDPOINT = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706"
API_KEY = "YOUR_API_KEY_HERE" # 楽天のアプリケーションID
AFFILIATE_ID = "YOUR_AFFILIATE_ID_HERE" # 楽天アフィリエイトID

# 商品情報の取得
params = {
    'applicationId': API_KEY,
    'affiliateId': AFFILIATE_ID,
    'keyword': 'Python 本',
    'hits': 10
}
# APIリクエストの実行
response = requests.get(API_ENDPOINT, params=params)

if response.status_code == 200:
    data = response.json()
    items = data.get('Items', [])
    result = []

    # 結果を整形してリストとして返す
    for item in items:
        # print(item)
        product_info = {
            '商品名': item['Item']['itemName'],
            '価格': f"{item['Item']['itemPrice']}円",
            '商品上url': item['Item']['itemUrl'],
            'アフィリエイトリンク': item['Item']['affiliateUrl'],
        }
        result.append(product_info)
else:
    print(f"エラーが発生しました: {response.status_code}")

print(result)

上記のコードでは、楽天APIを使用して「Python 本」というキーワードで商品情報を取得し、商品名、価格、商品URL、アフィリエイトリンクを含むリストとして結果を整形しています。
'keyword'の「Python 本」を変更すれば、検索する言葉を変えれます。
また'hits'は検索数です。変更すれば指定したキーワードでhits数までデータを検索することができます。
以下に各行の意味を解説してます。読み飛ばしていただいてもOKです。

  • import requests: requestsライブラリをインポートし、APIへのHTTPリクエストを簡単に行うために使用します。

  • API_ENDPOINT = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706": 楽天APIのエンドポイントURLを設定します。これは商品情報を取得するための特定のURLです。

  • API_KEY = "YOUR_API_KEY_HERE": 楽天APIのアプリケーションID(APIキー)を設定します。これは楽天の開発者ポータルで取得したキーです。

  • AFFILIATE_ID = "YOUR_AFFILIATE_ID_HERE": 楽天アフィリエイトIDを設定します。アフィリエイトリンクを生成するために必要です。

  • params = {...}: APIリクエストに使用するパラメータを辞書形式で定義します。ここでは、アプリケーションID、アフィリエイトID、検索キーワード(例:「Python 本」)、取得する商品数(hits)を指定しています。

  • response = requests.get(API_ENDPOINT, params=params): 定義したエンドポイントに対してGETリクエストを送信し、商品情報を取得します。

  • if response.status_code == 200: レスポンスのステータスコードが200(成功)であるかを確認します。成功した場合、次の処理を行います。

  • data = response.json(): レスポンスをJSON形式に変換します。これにより、Pythonの辞書としてデータを扱うことができます。

  • items = data.get('Items', []): JSONデータからItemsキーに対応する商品情報のリストを取得します。Itemsが存在しない場合は空のリストを返します。

  • result = []: 結果を格納するための空のリストを作成します。

  • for item in items: 取得した各商品に対してループ処理を行います。

  • product_info = {...}: 各商品について、商品名、価格、商品URL、アフィリエイトリンクを辞書形式で整理し、product_infoに格納します。

  • result.append(product_info): 整理した商品情報をresultリストに追加します。

result の説明
result は取得した商品の情報をリスト形式で格納したものです。各アイテムは辞書形式で保存されており、以下のキーを持ちます:

  • 商品名: 商品の名前(例:「Pythonプログラミング入門」など)

  • 価格: 商品の価格(例:「2000円」など)

  • 商品URL: 楽天市場での商品ページへのURL

  • アフィリエイトリンク: アフィリエイトリンクを使った商品ページのURL

このリストを使うことで、商品情報を簡単に操作したり、他のシステムに取り込んだりすることが可能です。

6.スプレッドシートへの書き込み


取得した商品情報に基づいてアフィリエイトリンクを生成し、Googleスプレッドシートに書き込む方法について説明します。
以下のサンプルコードをコピペして実行してください

spreadsheet = gc.open('楽天api情報集約') # 既存のスプレッドシートを開く
worksheet = spreadsheet.get_worksheet(0)

# ヘッダーの設定(既に設定されている場合はスキップ可能)
worksheet.append_row(['商品名', '価格', '商品URL', 'アフィリエイトリンク'])

# 商品情報とアフィリエイトリンクの書き込み
for item in result:
    worksheet.append_row([item['商品名'], item['価格'], item['商品上url'], item['アフィリエイトリンク']])

このコードでは、3章で作成した「楽天api情報管理」という名前のスプレッドシートに商品情報とアフィリエイトリンクを書き込んでいます。

実行後、「楽天api情報管理」スプレッドシートを開いてみてください。
以下のようになっていれば成功です。

7.まとめ


今回の内容の振り返り

楽天APIを使って商品情報を取得し、Google Colaboratoryとスプレッドシートを活用して、商品情報とアフィリエイトリンクを管理する方法を学びました。

今後の応用例

今回の方法を応用して、特定のカテゴリの商品を自動で紹介するブログ記事やインスタ投稿の生成などができます。
上記方法もいつか記事にしようと思います。

注意点

  • API利用に関する注意: 楽天APIは一定の利用回数までは無料で使用できますが、制限を超えると一定時間開けないと使用できなくなります。

  • 認証とアクセス権限: Google Colaboratoryで一定時間開けると、再度実行しないとimportなど情報がクリアされています。なので一からコードを実行していかないとエラーになる場合があります。

今回の記事で使用した楽天API公式ドキュメントは下記です。
より深く知りたい方は参考にしてください。


いいなと思ったら応援しよう!