gates1deの備忘録

主に開発でひっかかったこと, ハマったことを記録します

rubyで書籍検索をしてみた(amazon-ecsを利用)。

amazon-ecsとは?

amazon-ecsは単刀直入に言うと, rubyからAmazon Product Advertising APIを使えるようにしたライブラリで, rubyのライブラリである「Nokogiri」を使ってデータを扱いやすくしています. 本のタイトルやISBNなどをキーワードとして検索を行い, 該当する本に付随する情報を取得してくれます.

※Nokogiriに関してはイメージ的に以下の記事がわかりやすいかもしれません.
http://himaratsu.hatenablog.com/entry/2013/04/27/002249

準備

rubyやらgemやらの環境が整っているのは前提としておいて(ググればいっぱい出てくるので…すみません…), 自分の環境はubuntu server 13.10を使ってやっていきます.


まずは一番面倒であろうAmazonアソシエイトの登録です笑
Amazon Product Advertising APIを使うためにはしょうがない!

ということで一番わかりやすい登録方法が以下のサイトに記載されていますので参考にしていきましょう.
http://www.ajaxtower.jp/ecs/

このサイトではAmazon Web Serviceの使い方全般を紹介してくれていますが, ここでやっていくのは「基本」の「サービス利用準備」までで十分かと思います.
ただし, Secret Access Keyはどうやら表示できないようなので(少なくとも自分は見つけられませんでした笑), 発行されたらどこかにメモして人目につかないように管理しておきましょう!


結局のところ使うのは, 「トラッキングID(associate_tag)」と「アクセスキーID(Access_Key_ID)」と「シークレットアクセスキー(Secret_Access_Key)」なので, そちらを控えておきましょう.

作業

登録が終わったら実際に作業に入ります.
最初に, amazon-ecsをインストールします.

$ gem install amazon-ecs

インストールできたら, 実際にrubyで処理を書いていきます.

#! /usr/bin/ruby
# coding: UTF-8

require 'rubygems'
require 'amazon/ecs'

Amazon::Ecs.options = {
        :associate_tag => "手に入れたトラッキングID",
	:AWS_access_key_id => "手に入れたAccess_Key_ID",
	:AWS_secret_key => "手に入れたSecret_Access_Key"
}
# Amazonモジュール内部にあるEcsクラスのitem_searchメソッドを呼び出す. '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


実行してみると,

<Title>パーフェクトRuby (PERFECT SERIES 6)</Title>
<Author>Rubyサポーターズ</Author>
<Title>たのしいRuby 第4</Title>
<Author>高橋 征義</Author>
<Title>Ruby on Rails 4 アプリケーションプログラミング</Title>
<Author>山田 祥寛</Author>
<Title>Ruby徹底攻略 (WEB+DB PRESS plus)</Title>
<Author>角 征典</Author>
<Title>初めてのRuby</Title>
<Author>Yugui</Author>
<Title>プログラミング言語 Ruby</Title>
<Author>まつもと ゆきひろ</Author>
<Title>パーフェクト Ruby on Rails</Title>
<Author>すがわら まさのり</Author>
<Title>Rubyではじめるシステムトレード (現代の錬金術師シリーズ)</Title>
<Author>坂本タクマ</Author>
<Title>作りながら学ぶRuby入門 第2</Title>
<Author>久保秋 真</Author>
<Title>メタプログラミングRuby</Title>
<Author>Paolo Perrotta</Author>


たった10数行程度で本のタイトルと著者がとれちゃいます.
でも取ってこれる商品数は10個なのでピンポイントで商品のデータを取得したかったらキーワードを詳細にしましょう.
ちなみにISBNとかでもキーワードとして利用できます.

是非図書管理とかに利用して頂きたいと思います.

それでは今日はこのへんで!

Say good-bye!