Amazon PA-API アフィリエイトリンク生成ガイド
概要
Amazon Product Advertising API (PA-API v5) を使って、書籍のISBN/ASINからアフィリエイトリンクを生成する。
必要な認証情報
| 項目 | 取得場所 |
|---|---|
| ACCESS_KEY | Amazonアソシエイト → ツール → Product Advertising API |
| SECRET_KEY | 同上 |
| ASSOCIATE_ID | アソシエイトID(例: eurekapu55-22) |
セットアップ
pip install python-amazon-paapi
Pythonスクリプト
使用ライブラリ: python-amazon-paapi (v5.0.1)
基本的な使い方
from amazon.paapi import AmazonAPI
import json
# 認証情報(環境変数推奨)
ACCESS_KEY = "YOUR_ACCESS_KEY"
SECRET_KEY = "YOUR_SECRET_KEY"
ASSOCIATE_ID = "eurekapu55-22"
COUNTRY = "JP"
amazon_api = AmazonAPI(ACCESS_KEY, SECRET_KEY, ASSOCIATE_ID, COUNTRY)
# ISBNまたはASINで検索
def get_affiliate_link(keyword):
"""
キーワード(ISBN、ASIN、書籍名など)からアフィリエイトリンクを取得
"""
try:
products = amazon_api.search_items(keywords=keyword)
if products and 'data' in products and len(products['data']) > 0:
item = products['data'][0]
return {
'title': item.item_info.title.display_value,
'asin': item.asin,
'url': item.detail_page_url, # アフィリエイトリンク
'image': item.images.primary.large.url if item.images else None
}
except Exception as e:
print(f"Error: {e}")
return None
# 使用例
result = get_affiliate_link("4062190141") # ISBN
print(json.dumps(result, ensure_ascii=False, indent=2))
ライブラリで使えるAPI
| メソッド | 用途 |
|---|---|
search_items(keywords=...) | キーワード検索 |
get_items(item_ids=[...]) | ASIN/URLから直接取得 |
get_variations(asin=...) | バリエーション取得 |
get_browse_nodes(browse_node_ids=[...]) | カテゴリ情報取得 |
取得可能なデータ(Resources)
| カテゴリ | 内容 | アクセス例 |
|---|---|---|
| Images | 画像URL (Small/Medium/Large) | item.images.primary.large.url |
| ItemInfo.Title | 商品タイトル | item.item_info.title.display_value |
| ItemInfo.ByLineInfo | 著者・メーカー情報 | item.item_info.by_line_info |
| ItemInfo.Classifications | 分類情報 | item.item_info.classifications |
| ItemInfo.ProductInfo | 商品詳細(色など) | item.item_info.product_info.color |
| Offers | 価格情報 | item.offers.listings[0].price.amount |
| BrowseNodeInfo | カテゴリ階層 | item.browse_node_info |
| DetailPageURL | アフィリエイトリンク | item.detail_page_url |
※ レビュー情報はPA-API v5では取得不可(Amazon側で廃止)
CSVから一括処理
import pandas as pd
import json
import time
# CSVから書籍リストを読み込み
df = pd.read_csv('books.csv')
isbn_list = df['ISBN'].astype(str).tolist()
results = []
for isbn in isbn_list:
result = get_affiliate_link(isbn)
if result:
results.append(result)
time.sleep(1) # レート制限対策
# JSONに保存
with open('output_amazon_books.json', 'w', encoding='utf-8') as f:
json.dump(results, f, ensure_ascii=False, indent=2)
出力形式
data/output_amazon_books.json の形式:
[
{
"title": "書籍タイトル",
"asin": "4062190141",
"detailPageURL": "https://www.amazon.co.jp/dp/...?tag=eurekapu55-22...",
"images_url": "https://m.media-amazon.com/images/I/...",
"category": "カテゴリ名",
"blog_category": "経営管理",
"description": "",
"purchaseDate": "2022"
}
]
注意事項
- レート制限: 1秒に1リクエスト程度に抑える
- API利用資格: アフィリエイト経由の売上実績がないとAPI利用制限あり
- 認証情報: コードにハードコードせず、環境変数や
.envファイルで管理推奨
関連ファイル
- 既存データ:
data/output_amazon_books.json - 表示ページ:
pages/blog/amazon/purchase-*.vue - 元スクリプト:
C:/Users/numbe/Git_repo/amazonAPI/get_amazon_book.ipynb