LoginSignup
1
2

More than 5 years have passed since last update.

Amazon Product Advertising API を使って kakaku.com の価格一覧表示をしてみたい

Posted at

環境/前提

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 辺りを見るとわかると思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2