ASIN から商品グループを取得したかったので Amazon API を調査.取り合えず,API を叩くためのアクセスキーとシークレットキーを取得する必要があるようなので,以下のページから開発者登録をします.
Ruby で Amazon の API を叩くには Amazon::Ecs が良いようなので gem install amazon-ecs でインストールします.その後,適当に以下のようなサンプルコードを記述して実行してみました.
require 'rubygems' require 'amazon/ecs' # 初期設定 Amazon::Ecs.options = { :aWS_access_key_id => 'YourAccessKey', :aWS_secret_key => 'YourSecretKey', :country => :jp, } # response_group は,'Small', 'Medium', 'Large' の 3種類で, # 取得できる情報量が変化する. response = Amazon::Ecs.item_lookup(ARGV[0], { :response_group => 'Small' }) if (response.items.length > 0) response.items.each { |item| # :response_group => 'Small' で取得できる基本情報 puts("asin: #{item.get('asin')}") puts("author: #{item.get('author')}") puts("title: #{item.get('title')}") puts("manufacturer: #{item.get('manufacturer')}") puts("group: #{item.get('productgroup')}") #puts("url: #{item.get('detailpageurl')}") # これ以降は,:response_groupe で Medium 以上を選択したときのみ #puts("salesrank: #{item.get('salesrank')}") #puts("largeimage: #{item.get('largeimage/url')}") #puts("mediumimage: #{item.get('mediumimage/url')}") #puts("smallimage: #{item.get('smallimage/url')}") #puts("amount: #{item.get('amount')}") } else puts("#{ARGV[0]}: products not found") end
実行してみた結果.
$ ruby test-amazon.rb 4873113679 asin: 4873113679 author: Yugui title: 初めてのRuby manufacturer: オライリージャパン group: Book
Amazon API は問い合わせる際に,取得できる情報量を Small, Medium, Large から選択できるようで,Small だと上記のような基本情報のみが返ってきます.Medium だとこれに加えて,画像 URL,値段などの情報が付加されます.Large は何かいっぱい付いてくるようです.http://kagayoshito.com/posts/show/18 で全て(?)の情報を出力するサンプルコードが挙がっているので,この辺りを参考にすると良いかもしれません.