【Python実践】楽天商品APIでジャンル情報を取得・活用する方法
📌 概要
楽天商品APIを使って商品ジャンルの階層構造を取得し、CSV形式で保存するPythonスクリプトを解説します。親ジャンル、現在のジャンル、子ジャンルの関係性を明確に把握でき、ECサイトの商品カテゴリ分析やデータ分析に活用できます。
🔰 前提知識
- Python基礎文法
- API・JSONの基本的な理解
- CSVファイル操作の基礎
🛠️ 必要な環境
- Python 3.7以上
- 必要なライブラリ:
- requests
- python-dotenv
- 楽天アプリケーションID
💡 主な機能と特徴
1. APIリクエスト機能
def make_api_request(genre_id: int) -> Dict[str, Any]:
params = {
'applicationId': RAKUTEN_APP_ID,
'genreId': genre_id,
'genrePath': 1, # 親ジャンル情報取得用
'formatVersion': 2
}
- エラーハンドリング機能搭載
- リトライ機能による安定性確保
- タイムアウト設定による処理の安全性確保
2. ジャンルデータ処理機能
def process_genre_data(data: Dict[str, Any]) -> List[Dict[str, Any]]:
genres = []
# 親ジャンル処理
if 'parents' in data:
for parent in data['parents']:
genre_info = {
'genre_id': parent['genreId'],
'genre_name': parent['genreName'],
'genre_level': parent['genreLevel'],
'relation': 'parent'
}
genres.append(genre_info)
取得できる情報:
- 親ジャンル情報(上位カテゴリ)
- 現在のジャンル情報
- 子ジャンル情報(下位カテゴリ)
- ジャンル階層レベル
3. CSV出力機能
def save_to_csv(genres: List[Dict[str, Any]], filepath: str) -> None:
fieldnames = ['genre_id', 'genre_name', 'genre_level', 'relation']
出力データの形式:
genre_id,genre_name,genre_level,relation
111111,レディースファッション,1,parent
222222,トップス,2,current
333333,Tシャツ,3,child
🎯 実践的な活用例
1. ECサイトのカテゴリ設計
- 商品カテゴリの階層構造分析
- 競合サイトのカテゴリ構成研究
- 自社ECサイトのカテゴリ設計参考
2. マーケティング分析
- カテゴリごとの商品数分析
- 階層の深さと商品数の相関分析
- カテゴリ構成のトレンド分析
3. データ分析・機械学習
- 商品カテゴリの自動分類
- レコメンデーションシステムの構築
- 類似商品の抽出
📈 拡張アイデア
1. データ収集の拡張
# 再帰的に全階層を取得する例
def fetch_all_genres(genre_id: int, max_level: int = 3):
data = make_api_request(genre_id)
genres = process_genre_data(data)
if 'children' in data and max_level > 0:
for child in data['children']:
child_genres = fetch_all_genres(
child['genreId'],
max_level - 1
)
genres.extend(child_genres)
return genres
2. データ分析機能の追加
# ジャンル階層の統計分析例
def analyze_genre_structure(genres: List[Dict[str, Any]]):
stats = {
'total_genres': len(genres),
'max_level': max(g['genre_level'] for g in genres),
'genres_per_level': {}
}
return stats
🔒 エラーハンドリングとセキュリティ
1. カスタム例外処理
class RakutenAPIError(Exception):
"""楽天API関連のエラーを処理するカスタム例外クラス"""
2. 環境変数による認証情報管理
# .env
RAKUTEN_APP_ID=your_app_id_here
📝 まとめ
このスクリプトを活用することで以下を自動化
- 楽天の商品カテゴリ構造を体系的に取得
- 階層関係を明確に把握
- データ分析や機械学習に活用可能なデータ形式で保存が実現できます。
🔧 今後の展望
- WebUIの追加によるデータ可視化
- 定期実行による変更検知機能
- 他のECプラットフォームとの連携
- リアルタイムデータ更新機能
👉 参考資料
このスクリプトは、ECサイトの運営やデータ分析に携わるエンジニアにとって、有用なツールとなることでしょう。
コメント