環境/前提
OS レベルで環境依存はしていないと思いますが、Cygwin や Mac OS X でも動くと思いますが、自分は VMWare 上の Ubuntu を使っています。言語は Ruby。gem などが動いていることが前提となります。
事前準備
Access Key ID と Secret Access Key
AWS Identity and Access Management(IAM)の Access Key ID と Secret Access Key が必要です。以下を参考に、まずアクセスキーを作成してください。
Access Key ID と Secret Access Key はファイルで落とせるので保存しておいてくといいと思います。
アソシエイトID を作成
次に、アソシエイトIDを作ります。アフィリエイトなどいらないのですが、作っておいたほうがいいようです。詳しくは以下に。
ruby gem をインストール
Amazon Product Advertising API は別に難しい API ではないので Ruby の追加パッケージ無しでも使えますが、せっかくあるので amazon-ecs を使います。Linux 系ならインストールは以下のとおり。ほかの sudo がいるかいらないか程度の差だと思います。
$ sudo gem install amazon-ecs
商品を検索してみる
上記準備がすべて成功したっぽかったら以下のようにコードを書いてみる。Amazon::Ecs.options は上記で準備したもの。Amazon::Ecs.item_search では検索したい商品名やジャンルなどを入れます。自分はアメリカにいるので :country => 'us' になっていますが、日本の amazon 商品を見たければ jp とか入れればいいとおもいます。
require 'amazon/ecs'
Amazon::Ecs.options = {
:associate_tag => 'philosong-20',
:AWS_access_key_id => 'XXXXXXXXXXXXXXX',
:AWS_secret_key => 'XXXXXXXXXXXXXXX'
}
res = Amazon::Ecs.item_search(
'EOS 5Ds R',
:browse_node => '3017941',
:response_group => 'ItemAttributes, Images',
:search_index => 'Electronics',
:country => 'us')
res.items.first(5).each do |item|
puts item.get('ASIN') + ':' + item.get('ItemAttributes') #+ ':' + item.get('ItemAttributes/Price')
end
browser_node って?
商品カテゴリーの番号です。amazon のトップページからカテゴリーに飛ぶと、URL は...
http://www.amazon.com/Digital-SLRs-Cameras-Photo/b/ref=dp_bc_5?ie=UTF8&node=3017941
などとなっていると思います。この node の値が browser node となります。検索したい商品を絞り込みたいときに有効です。node の一覧は日本の方は https://affiliate.amazon.co.jp/gp/associates/help/t100 辺りを見るとわかると思います。