Tag: amazon-ecs

目次

関連ページ

参考情報

概要

  • Amazon Product Advertising APIを使用するためのRubyライブラリ。

基本

  • Amazon::ECS.item_search: 条件を指定して検索。
  • Amazon::Ecs.item_lookup : 個別アイテム情報。第一引数はASIN。
  • 返却されてくるXMLの構造。Amazon Product Advertising APIで返却されたItemのXML構造
  • ASINはItemの直接の子どもだが、TitleはItemAttributesの子どもとなっている。
  • Amazon::ECS.item_searchはAmazon::Elementの配列が返ってくる。
  • item.get_element("Title")ではAmazon::Elementが返ってくる。
  • item.get("Title")でテキスト表現。
  • item.elemで Nokogiri::XML::Element が取得できる。

検索結果のItemのXML

  • 返却されてくるXMLの構造。Amazon Product Advertising APIで返却されたItemのXML構造
  • 実物(URLは"?"以降省略)。
    <Item>
      <ASIN>4774193976</ASIN>
      <DetailPageURL>https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AERuby%E5%85%A5%E9%96%80-%E8%A8%80%E8%AA%9E%E4%BB%95%E6%A7%98%E3%81%8B%E3%82%89%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E6%8A%80%E6%B3%95%E3%81%BE%E3%81%A7-Software-Design-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4774193976</DetailPageURL>
      <ItemLinks>
        <ItemLink>
          <Description>Add To Wishlist</Description>
          <URL>https://www.amazon.co.jp/gp/registry/wishlist/add-item.html</URL>
        </ItemLink>
        <ItemLink>
          <Description>Tell A Friend</Description>
          <URL>https://www.amazon.co.jp/gp/pdp/taf/4774193976</URL>
        </ItemLink>
        <ItemLink>
          <Description>All Customer Reviews</Description>
          <URL>https://www.amazon.co.jp/review/product/4774193976</URL>
        </ItemLink>
        <ItemLink>
          <Description>All Offers</Description>
          <URL>https://www.amazon.co.jp/gp/offer-listing/4774193976</URL>
        </ItemLink>
      </ItemLinks>
      <SalesRank>4003</SalesRank>
      <SmallImage>
        <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL75_.jpg</URL>
        <Height Units="pixels">75</Height>
        <Width Units="pixels">60</Width>
      </SmallImage>
      <MediumImage>
        <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL160_.jpg</URL>
        <Height Units="pixels">160</Height>
        <Width Units="pixels">127</Width>
      </MediumImage>
      <LargeImage>
        <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL.jpg</URL>
        <Height Units="pixels">500</Height>
        <Width Units="pixels">397</Width>
      </LargeImage>
      <ImageSets>
        <ImageSet Category="primary">
          <SwatchImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL30_.jpg</URL>
            <Height Units="pixels">30</Height>
            <Width Units="pixels">24</Width>
          </SwatchImage>
          <SmallImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL75_.jpg</URL>
            <Height Units="pixels">75</Height>
            <Width Units="pixels">60</Width>
          </SmallImage>
          <ThumbnailImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL75_.jpg</URL>
            <Height Units="pixels">75</Height>
            <Width Units="pixels">60</Width>
          </ThumbnailImage>
          <TinyImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL110_.jpg</URL>
            <Height Units="pixels">110</Height>
            <Width Units="pixels">87</Width>
          </TinyImage>
          <MediumImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL._SL160_.jpg</URL>
            <Height Units="pixels">160</Height>
            <Width Units="pixels">127</Width>
          </MediumImage>
          <LargeImage>
            <URL>https://images-fe.ssl-images-amazon.com/images/I/51nY-YLt2ZL.jpg</URL>
            <Height Units="pixels">500</Height>
            <Width Units="pixels">397</Width>
          </LargeImage>
        </ImageSet>
      </ImageSets>
      <ItemAttributes>
        <Author>伊藤 淳一</Author>
        <Binding>大型本</Binding>
        <EAN>9784774193977</EAN>
        <EANList>
          <EANListElement>9784774193977</EANListElement>
        </EANList>
        <IsAdultProduct>0</IsAdultProduct>
        <ISBN>4774193976</ISBN>
        <Label>技術評論社</Label>
        <Languages>
          <Language>
            <Name>日本語</Name>
            <Type>Published</Type>
          </Language>
        </Languages>
        <Manufacturer>技術評論社</Manufacturer>
        <NumberOfPages>472</NumberOfPages>
        <PackageDimensions>
          <Height Units="100分の1インチ">102</Height>
          <Length Units="100分の1インチ">913</Length>
          <Weight Units="100分の1ポンド">163</Weight>
          <Width Units="100分の1インチ">717</Width>
        </PackageDimensions>
        <ProductGroup>Book</ProductGroup>
        <ProductTypeName>ABIS_BOOK</ProductTypeName>
        <PublicationDate>2017-11-25</PublicationDate>
        <Publisher>技術評論社</Publisher>
        <Studio>技術評論社</Studio>
        <Title>プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)</Title>
      </ItemAttributes>
      <OfferSummary>
        <LowestNewPrice>
          <Amount>3218</Amount>
          <CurrencyCode>JPY</CurrencyCode>
          <FormattedPrice>¥ 3,218</FormattedPrice>
        </LowestNewPrice>
        <LowestUsedPrice>
          <Amount>5364</Amount>
          <CurrencyCode>JPY</CurrencyCode>
          <FormattedPrice>¥ 5,364</FormattedPrice>
        </LowestUsedPrice>
        <TotalNew>5</TotalNew>
        <TotalUsed>5</TotalUsed>
        <TotalCollectible>0</TotalCollectible>
        <TotalRefurbished>0</TotalRefurbished>
      </OfferSummary>
    </Item>
    

サンプル

Rubyというキーワードを含む書籍を検索

  • 以下のようになる。
    require 'rubygems'
    require "bundler/setup"
    require 'amazon/ecs'
    
    # デバッグ
    Amazon::Ecs::debug = true
    Amazon::Ecs.options = {
      :associate_tag => "xxxxx",
      :AWS_access_key_id => "yyyyy",
      :AWS_secret_key => "zzzzz"
    }
    
    def search_books
      # 本のなかでRubyというキーワードを含むものを検索。
      res = Amazon::Ecs.item_search('ruby', {:search_index => 'Books', :response_group => 'Medium', :country => 'jp'})
      res.items.each do |item|
        # タイトルを取得&表示
        puts item.get_element("Title")
        # 著者を取得&表示
        puts item.get_element("Author")
      end
    end
    

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-10 (火) 21:11:55