2018-04-13 更新

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)で取得する必要があります。

その他】関連記事