電柱日報

日々の由無し事

Amazon E-Commerce Service 4.0

一つ前の規格であるAWS3(Amazon Web Service 3.0)を利用していたAmazonアソシエイトリンク生成用のRubyスクリプトを、新しいECS4(E-Commerce Service 4.0)へ対応させるために書き直しました。
AWS3からECS4になりAmazonから返される情報が量、質共に大幅に強化されています。
例えば、商品画像に関する情報では、AWS3ではAmazonが有効な画像を用意していようがいまいが、画像のURLが返されてきました。
スクリプト側としては、返されたURLが有効な画像かどうか知りようが無いため画像リンクを張らざるを得ないのですが、そのURLが有効でない場合Amazonは1px×1pxサイズのGIF画像を返す仕様になっており、いくつかそうした極小の四角いリンクが表示されているものが在りました。
これがECS4では、有効な画像が用意されていないものについては商品画像に関する情報そのものを返さなくなりましたので、商品画像に関する情報が返ってこなかった場合には?画像を代わりに表示するような仕組みが作れるようになりました。また、同時に画像の縦横サイズも同時に返してくれるようになり、HTMLのimg要素にheight、widthの両属性を指定できるようになっています。
手製スクリプトで使っているのは商品タイトルと商品画像関連、あとは詳細情報へのリンクURLくらいのものですが、返される情報にはユーザレビューの回数やレーティングの他、価格の数値(1000)と通貨単位(¥)のほかに表示用に整形された価格(¥ 1,000)があったり、製作者名とともにその役割("著"、"原著"、"翻訳")が返されてきたり、CDアルバムなどでは収録されている曲名が返されて来たりと、至れり尽くせりです。
Amazonの商品詳細ページに記載されている商品関連の情報は全部入手できそうな勢いですよ。
これを機に結構いい加減に書いちゃってたXML解析の部分をXMLの要素に相当するクラスをつくってスッキリさせたり、エラー処理を入れたりいろいろと手を加えてあります。
やっぱり指定された条件の下で要求された動作を満たすようなスクリプトを書くのは楽しいなぁ。