require 'csv'
require 'amazon/ecs'
IMPORT_FILE_NAME = 'isbns.csv'
EXPORT_FILE_NAME = 'foo.csv'
Amazon::Ecs.configure do |options|
options[:AWS_access_key_id] = "****************"
options[:AWS_secret_key] = "****************"
options[:associate_tag] = "****************"
options[:country] = 'jp'
end
isbns = CSV.read(IMPORT_FILE_NAME).inject([]) {|arr, x| arr << x[0]}
res = Amazon::Ecs.item_lookup(isbns.join(','), response_group: 'Small, ItemAttributes, Images', id_type: 'ISBN', search_index: 'Books')
# puts res.marshal_dump
cols = {
title: lambda {|x| x.get_unescaped("Title")},
author: lambda {|x| x.get_unescaped("Author")},
manufacturer: lambda {|x| x.get_unescaped("Manufacturer")},
publication_date: lambda {|x| x.get_unescaped("PublicationDate")},
page_url: lambda {|x| "http://www.amazon.co.jp/dp/#{x.get_unescaped('ASIN')}"},
isbn: lambda {|x| x.get_unescaped("ISBN")},
image_url: lambda {|x| h = x.get_hash("SmallImage"); return h["URL"] if h.kind_of?(Hash)}
}
CSV.open(EXPORT_FILE_NAME, 'w') do |csv|
csv << cols.keys
res.items.each do |item|
elem = item.get_element('ItemAttributes')
csv << cols.each_value.inject([]) {|arr, pr| arr << pr.call(elem)}
end
end
2013年8月30日金曜日
Amazon API より CSV 出力サンプル
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿