#!/usr/local/bin/ruby -Ku # require Ruby 1.8.x require 'cgi' require 'open-uri' require 'rexml/document' ## Get CGI parameter $cgi=CGI.new amazon_asin=$cgi.params['asin'][0] #amazon_access_key=$cgi.params['access_key'][0] amazon_access_key='あなたのアクセスキー' amazon_associate_id=$cgi.params['associate_id'][0] hdr={'type'=>'text/html', 'charset'=>'UTF-8' } print $cgi.header(hdr) if amazon_asin == nil or amazon_asin == '' or amazon_associate_id == nil or amazon_associate_id == '' puts "Error: amazon_asin='#{amazon_asin}' amazon_associate_id='#{amazon_associate_id}'" end ## Get XML from Amazon xml = '' open("http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&AWSAccessKeyId=#{amazon_access_key}&AssociateTag=#{amazon_associate_id}&ItemId=#{amazon_asin}&ResponseGroup=Images,ItemAttributes,Reviews"){|f| xml += f.read() } #sleep(1) #wait 1 seconds for AWS license 4.1.2 ## parse XML doc = REXML::Document.new(xml) ve = Hash.new(nil) #variable and elements ve = { 'title'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Title', 'author'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Author', 'publisher'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Publisher', 'pubdate'=>'/ItemLookupResponse/Items/Item/ItemAttributes/PublicationDate', 'reldate'=>'/ItemLookupResponse/Items/Item/ItemAttributes/ReleaseDate', 'img_url'=>'/ItemLookupResponse/Items/Item/SmallImage/URL', 'img_w'=>'/ItemLookupResponse/Items/Item/SmallImage/Width', 'img_h'=>'/ItemLookupResponse/Items/Item/SmallImage/Height', 'review'=>'/ItemLookupResponse/Items/Item/CustomerReviews/Review/Summary', 'rating'=>'/ItemLookupResponse/Items/Item/CustomerReviews/AverageRating', } ax = Hash.new("") #amazon xml element ve.each{|k,v| obj = doc.elements[v] if obj != nil ax[k] = "#{obj.text}" else ax[k] = "" end STDERR.puts(%Q@ax[#{k}] = #{ax[k]}@) } if ax['pubdate'] != '' ax['date'] = "(#{ax['pubdate'][0,7]})" elsif ax['reldate'] != '' ax['date'] = "(#{ax['reldate'][0,7]})" else ax['date'] = '' end if ax['review'] != "" ax['review'] = "
「#{ax['review']}」" else ax['review'] = '' end ## generate HTML a2s_table=%Q@
#{ax['title']}
#{ax['author']}
#{ax['publisher']} #{ax['date']}#{ax['review']}
@ a2s_table_src=a2s_table.gsub(/\&/, '&').gsub(/\"/, '"').gsub(/\/, '>') a2s_text_src=%Q@#{ax['title']}@.gsub(/\&/, '&').gsub(/\"/, '"').gsub(/\/, '>') ## output HTML print %Q| amazlet:#{amazon_asin}

Amazon: #{ax['title']}

ASIN: #{amazon_asin}

表示サンプル

#{a2s_table}

テーブル

テキストのみ

「テーブル」「テキストのみ」をクリックすると、全選択できます。

このウィンドウを閉じる

| # end of file