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 件のコメント:
コメントを投稿