liquidjumper Python [Python3]アマゾンのPA-API5で商品カテゴリーを指定してキーワード検索する方法

[Python3]アマゾンのPA-API5で商品カテゴリーを指定してキーワード検索する方法

amazon_paapi5_searchindex_topimage

Amazonで取り扱っている商品の名前や価格など商品情報を取得できる、

Product Advertising API(PA-API)

過去記事で、Pythonを使ったPA-API5のキーワード検索で商品情報を取得する方法を紹介しました。

しかし、オプションを設定せずにデフォルトのまま、キーワード検索を行うと、アマゾンで扱われる商品のすべてのカテゴリーが検索対象となる為、意図した検索結果が受け取れない可能性があります。

Amazon.co.jpのサイトで商品を探す際は、探している対象にあわせてカテゴリーを指定し、検索結果の精度を高め、目的の商品を見つけやすくしていると思いますが、Product Advertising API(PA-API)でも同様に、カテゴリーを指定してキーワード検索をする事ができます。

Amazonのカテゴリー選択リスト
Amazonのカテゴリー選択リスト


そこで、本記事では、Product Advertising API(PA-API)でキーワード検索する際に、オプションでカテゴリーを指定する方法を紹介します。


アマゾンの商品カテゴリを示すSearchIndex

PA-API5 でキーワード検索は、次の様なコードで商品情報を取得できます。

amazon_api.search_items(keywords="キーワードー")

ただし、このデフォルト設定のコードで実行するとすべてのカテゴリーが対象となる為、対象外の商品情報まで取得してしまい、目的外の商品まで取得されてしまう可能性が。

amazon_api.search_items には、商品カテゴリーを指定できるオプションパラメータがあります。

search_index 

このパラメータ search_index に、検索インデックスの値を指定すると、検索対象となる商品カテゴリーを設定可能になります。

日本のアマゾン Amazon.co.jp で商品カテゴリーを指定する場合のインデックス値

search_index に指定する、検索インデックスの値は、Amazonの対象国によって異なります。

検索インデックスの値の一覧は、各国のロケールリファレンスを参照してください。

>>各国のロケールリファレンス一覧

Amazon.co.jp  の検索インデックス一覧

日本のアマゾン Amazon.co.jp  で指定可能な検索インデックスの一覧です。

Search Index表示名称
Allすべてのカテゴリー
AmazonVideoプライム・ビデオ
Apparel衣料品・アクセサリー
Appliances大型家電
Automotiveカー&バイク用品
Babyベビー&マタニティ
Beautyビューティー
Books日本の書籍
Classicalクラシカル
Computersコンピュータ&アクセサリー
CreditCardsクレジットカード
DigitalMusicデジタルミュージック
Electronicsエレクトロニクス&カメラ
EverythingElseその他のすべて
Fashionファッション
FashionBabyファッション > キッズ・ベビー
FashionMenファッション > メンズ
FashionWomenファッション > レディース
ForeignBooks英語書籍
GiftCardsギフトカード
GroceryAndGourmetFoodフード&ビバレッジ
HealthPersonalCareヘルス&パーソナルケア
Hobbiesホビー
HomeAndKitchenキッチン・家庭用品
Industrialインダストリアル&サイエンティフィック
Jewelryジュエリー
KindleStoreKindleストア
MobileAppsアプリ・ゲーム
MoviesAndTV映画・テレビ
Musicミュージック
MusicalInstruments楽器
OfficeProducts文具・事務用品
PetSuppliesペット用品
Shoesシューズ&バッグ
Softwareソフトウェア
SportsAndOutdoorsスポーツ
ToolsAndHomeImprovementDIY、ツール&ガーデン
Toysおもちゃ
VideoGamesコンピュータ・ビデオゲーム
Watches時計

PythonのコードでSearchIndexを使用する

search_index は、amazon_api.search_items にオプションパラメータを追加するだけで使用できます。

キーワード「ガンダム」で、デフォルト設定のままキーワード検索すると。

from amazon.paapi import AmazonAPI  


ACCESS_KEY = "ABCDEFGHIJKL4567890Q" #アクセスキー  
SECRET_KEY = "ABcdefgHijKlmn12opQrsTu3456789" #シークレットキー  
ASSOCIATE_ID = "abcdefghijklmn-22" #アソシエイトID  
COUNTRY = "JP"  
keyword = "ガンダム" #検索キーワード

amazon_api = AmazonAPI(ACCESS_KEY, SECRET_KEY, ASSOCIATE_ID, COUNTRY )  
searchItems = amazon_api.search_items(item_count = 4 ,keywords=keyword )  

print(searchItems['data'][0].item_info.title.display_value)  #検索結果の1番目の商品アイテムの表示タイトル  
print(searchItems['data'][0].offers.listings[0].price.display_amount)  
print(searchItems['data'][1].item_info.title.display_value)  #検索結果の2番目の商品アイテムの表示タイトル  
print(searchItems['data'][1].offers.listings[0].price.display_amount)  
print(searchItems['data'][2].item_info.title.display_value)  #検索結果の3番目の商品アイテムの表示タイトル  
print(searchItems['data'][2].offers.listings[0].price.display_amount)  
print(searchItems['data'][3].item_info.title.display_value)  #検索結果の4番目の商品アイテムの表示タイトル  
print(searchItems['data'][3].offers.listings[0].price.display_amount)


「ガンダム」に関連する、さまざまなカテゴリーの商品が取得されました。
デフォルト設定で取得されたデータは、商品の対象範囲が広すぎて、目的の商品を見つけにくい。

機動戦士ガンダム サンダーボルト 第1話(セル版)
¥550
機動戦士ガンダム THE ORIGIN ルウム編 V 激突 ルウム会戦
¥407
機動戦士ガンダムAGE Blu-ray Box (特装限定版)
¥35,200
第22話 帰還
¥220


それでは、同じコードに検索インデックス「Books」を指定したオプションパラメータ search_index を追加して、キーワード検索してみましょう。

from amazon.paapi import AmazonAPI  


ACCESS_KEY = "ABCDEFGHIJKL4567890Q" #アクセスキー  
SECRET_KEY = "ABcdefgHijKlmn12opQrsTu3456789" #シークレットキー  
ASSOCIATE_ID = "abcdefghijklmn-22" #アソシエイトID  
COUNTRY = "JP"  
keyword = "ガンダム" #検索キーワード
searchindex = "Books" #商品カテゴリーを日本の書籍に指定

amazon_api = AmazonAPI(ACCESS_KEY, SECRET_KEY, ASSOCIATE_ID, COUNTRY )  
searchItems = amazon_api.search_items(item_count = 4 ,keywords=keyword ,search_index= searchindex)  

print(searchItems['data'][0].item_info.title.display_value)  #検索結果の1番目の商品アイテムの表示タイトル  
print(searchItems['data'][0].offers.listings[0].price.display_amount)  
print(searchItems['data'][1].item_info.title.display_value)  #検索結果の2番目の商品アイテムの表示タイトル  
print(searchItems['data'][1].offers.listings[0].price.display_amount)  
print(searchItems['data'][2].item_info.title.display_value)  #検索結果の3番目の商品アイテムの表示タイトル  
print(searchItems['data'][2].offers.listings[0].price.display_amount)  
print(searchItems['data'][3].item_info.title.display_value)  #検索結果の4番目の商品アイテムの表示タイトル  
print(searchItems['data'][3].offers.listings[0].price.display_amount)


今度は、ガンダムの書籍関連した商品情報だけを取得できました。

機動戦士クロスボーン・ガンダムX-11(1) (角川コミックス・エース)
¥634
機動戦士ガンダム サンダーボルト(19) (ビッグコミックススペシャル)
¥770
機動戦士ガンダム0083 REBELLION(17) (角川コミックス・エース)
¥634
機動新世紀ガンダムX Re:Master Edition(3) (角川コミックス・エース)
¥634

まとめ:商品カテゴリーを指定してキーワード検索する場合はSearchIndexを設定

アマゾンの、Product Advertising API(PA-API)で、対象商品のカテゴリーを指定してキーワード検索する方法を紹介しました。

カテゴリー指定方法:

amazon_api.search_items のオプションパラメータ search_index でカテゴリーを指定する。

SearchIndex使用時の注意点:

SearchIndexの値(検索インデックス)は、Amazonの対象国によって異なるので、国外も視野に入れたサイト・アプリ等を開発する場合は注意が必要。

PA-API5のキーワード検索で意図したカテゴリーじゃない商品情報ばかり取得されて困ってる方の参考になればと思います。



SAMURAI ENGINEER Plus+

𝕏 ( 旧Twitter ) Facebook Pocket LINE はてブ

おすすめの関連記事



あわせてよく読まれている記事