JAN code を Amazon で検索

paraches2010-05-11

昨日は MacBook Air でバーコード(JAN code)を読み込む事ができるようになったので、今日はそのバーコードの値を使って Amazon で検索する方法を調べてみた。

かなり昔に iTunes のアルバムジャケットをゲットするんで Amazon Web Service を使った事があるのでアカウントは既にある。あの要領で行けるのかな?と思ってたのだけど、何やら今は認証作業が必要らしい。

AccessKey と SecretAccessKey とクエリを渡すと URL が帰ってくるようなモジュールとか Python でないの?と思ったりしたのだけど、なんとなくググったら参考になるページを見つけたので、それをちょこちょこっといぢって使うことにした。で、参考にしたのはココココ

思い切り簡単な事にがっつりハマりながら、なんとか例題になっているページにはアクセスできるようになった。
例題では ASIN を使って検索しているので、これを JAN で検索するようにすれば JAN code から製品の情報をゲットできる。JAN code で検索をかけるには IdType を JAN にすれば良いらしい。なのに、さっそくやってみるとエラー! AWS.UnsupportedRequest だって…。
ちょこっとマニュアルを読んでみると SearchIndex が必要なのかもしれない。それじゃぁってことで SearchIndex を All にして再挑戦! が、結果は同じ AWS.UnsupportedRequest。

困ったな〜とググったら出てきたのがこのページ。JAN と EAN の関係なんて知らなかったよ! やられた…
というわけで、IdType を EAN にして再挑戦したら、ちゃんとデータを引けた!!!

localhost:~ paraches$ python AWStest4.py 4902370501575
<?xml version="1.0" ?><ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2009-11-01"><OperationRequest><HTTPHeaders><Header Name="UserAgent" Value="Python-urllib/1.17"></Header></HTTPHeaders>
<省略>
<Platform>SUPER FAMICOM</Platform><ProductGroup>Video Games</ProductGroup><ProductTypeName>ABIS_VIDEO_GAMES</ProductTypeName><Publisher>任天堂</Publisher><ReleaseDate>1992-08-27</ReleaseDate><Studio>任天堂</Studio><Title>スーパーマリオカート</Title></ItemAttributes></Item></Items></ItemLookupResponse>
localhost:~ paraches$ 

AWStest4.py が JAN code を渡すとレスポンスを表示するスクリプト。ちゃんとスーパーマリオカートが見つかった!
後はこのレスポンスをパースして欲しいデータをゲットすれば良いだけ。