AmazonのPAAPIで特定カテゴリのベストセラー10件を取得する(BrowseNodeLookup、TopSellers)
AmazonのPAAPI(Product Advertising API)で特定カテゴリのベストセラー10件を取得する方法です。
特定カテゴリのベストセラー10件を取得するために使用するオペレーションは「BrowseNodeLookup」、リクエストパラメータのレスポンスグループに「TopSellers」を指定します。
コード
以下のコードはRubyのamazon-ecsを使ったものになります。
カテゴリ「ゲーム PS4」のベストセラー10件
res = Amazon::Ecs.browse_node_lookup('2494234051', {:response_group => 'TopSellers', :country => 'jp'})
res.get_elements('//TopItem').each do |item|
item.get('ASIN')
item.get('Title')
item.get('DetailPageURL')
item.get('ProductGroup')
end
レスポンスデータ
上記のコードでamazon-ecsライブラリ内でNokogiriによって変換されたXMLデータは、以下のようになっていました。(URLのデータは省略しています)
<?xml version="1.0" encoding="UTF-8"?>
<BrowseNodeLookupResponse>
<BrowseNodes>
<Request>
<IsValid>True</IsValid>
<BrowseNodeLookupRequest>
<BrowseNodeId>2494234051</BrowseNodeId>
<ResponseGroup>TopSellers</ResponseGroup>
</BrowseNodeLookupRequest>
</Request>
<BrowseNode>
<BrowseNodeId>2494234051</BrowseNodeId>
<Name>プレイステーション4</Name>
<TopSellers>
<TopSeller>
<ASIN>B06Y63281P</ASIN>
<Title>ドラゴンクエストXI 過ぎ去りし時を求めて (早期購入特典「しあわせのベスト」「なりきんベスト」を先行入手することができるアイテムコード 同梱)</Title>
</TopSeller>
<TopSeller>
<ASIN>B01LPTFJLO</ASIN>
<Title>PlayStation 4 ジェット・ブラック 500GB(CUH-2000AB01)</Title>
</TopSeller>
<TopSeller>
<ASIN>B01LYS572Y</ASIN>
<Title>ニーア オートマタ - PS4</Title>
</TopSeller>
...全部で10件
</TopSellers>
<TopItemSet>
<Type>TopSellers</Type>
<TopItem>
<ASIN>B06Y63281P</ASIN>
<Title>ドラゴンクエストXI 過ぎ去りし時を求めて (早期購入特典「しあわせのベスト」「なりきんベスト」を先行入手することができるアイテムコード 同梱)</Title>
<DetailPageURL>https://www.amazon.jp/~</DetailPageURL>
<ProductGroup>Video Games</ProductGroup>
</TopItem>
<TopItem>
<ASIN>B01LPTFJLO</ASIN>
<Title>PlayStation 4 ジェット・ブラック 500GB(CUH-2000AB01)</Title>
<DetailPageURL>https://www.amazon.jp/~</DetailPageURL>
<ProductGroup>Video Games</ProductGroup>
</TopItem>
<TopItem>
<ASIN>B01LYS572Y</ASIN>
<Title>ニーア オートマタ - PS4</Title>
<DetailPageURL>https://www.amazon.jp/~</DetailPageURL>
<ProductGroup>Video Games</ProductGroup>
</TopItem>
...全部で10件
</TopItemSet>
</BrowseNode>
</BrowseNodes>
</BrowseNodeLookupResponse>
上記のデータを見てわかる通り、APIでは「ASIN」と「Title」くらいしか取得できていません。ベストセラーの情報に関してはRSSを参照した方が手っ取り早いと思った理由がこれです。各商品の詳しい情報を取得するには別のリクエスト(ItemLookup)で取得する必要があります。