アマゾンのWebサービスを利用する検索してみるまず、前のページで使ったサンプルの中身を見てみましょう。元のリクエストはこのようなものです。 <A href="http://xml.amazon.com/onca/xml3?t=apricotjam-22&dev-t=D14X1ERKGLFNNO&ArtistSearch=The%20Rolling%20Stones&mode=music&type=lite&f=xml" target="_blank">テスト</a> このリクエストのパラメータを見てみます。
各国のアマゾンWebサービスのモード
(ただし、日本のアマゾンで輸入本は、"books-us"というモードになるようです。これについてはまだ調査中です。) 検索方法
ブラウズノード検索アマゾンのWebサイトをブラウズしていると、何種類かのページがあることに気付きます。 一つはTOPページのようなその時点での企画などが照会されているページ。 もう一つはジャンル毎に設置され、そのジャンル内でのベストセラーリストが表示されているページ。 そしてもう一つは商品毎のページです。見たところ、殆どこの3種類に分類できるようです。 ここで注目するのは、2番目のベストセラーリストが表示されるページですが、これは次のようなURLになっています。 http://www.amazon.co.jp/exec/obidos/tg/browse/-/466284/・・・ アマゾンではこのようなページをブラウズノードと呼んでいるようです。上の例では466284という番号がこのブラウズノードを表すIDとなっており、 AWSのブラウズノードサーチ(BrowseNodeSearch)では、このブラウズノードに結びつけられている書籍のリストを得ることができます。 たとえば、466284番のノードは「文学・評論」ジャンルの ノードです。このブラウズノードに対してBrowseNodeSearchを行なえばベストセラーの情報を得ることができるわけです。 (注:このとき、売上順にデータを得るために、ソートオプションをsalesrankにする必要があります。また、一回のリクエストでは最大10件までのデータが返信されるため、 TOP100のデータを得るには、pageオプションの値を1ずつ増やしながら10回呼び出す必要があります) BrowseNodeSearchは非常に便利なのですが、問題点もあります。一つは、ブラウズノードのIDをプログラムで得る方法が無いことです。 ブラウズノードのリストはアマゾンが発表しているものを利用するか、一つ一つ探していく必要があります。また、URLはブラウズノードのように見える ページでもデータが結びついていないページが有ったり、ジャンル分けが変更になったときにはブラウズノードそのものがなくなることもあるので注意が必要です。 たとえば、上で紹介した466284番のノードとは別に497554番のページが「文学・評論」ジャンルの 書籍の売上TOP100ページとなっていますが、こちらはブラウズノードサーチの対象となりません。 liteとheavytypeパラメータのliteとheavyの違いは提供されるデータの内容の違いです。liteの場合は、たとえば書籍の場合、書名や著者、出版社、価格など基本的なデータなのに対し、 heavyの場合は、liteの内容に加えた書評などのデータが付加されています。 百聞は1見にしかず。実際に検索してみましょう。今回は、日本の書籍を扱うためmodeをbooks-jpにし、日本語のデータを扱うことを明示するlocale=jpというパラメータを追加しています。 またASIN(アマゾンの商品につけられたユニークな記号、書籍の場合はISBNを同じものになる)で検索しています。 日本語で日本の製品を検索するアメリカのamazon.comと日本のamazon.co.jpは同じデータベースを使用しているようですので、アクセスの方法は基本的に同じです。日本の製品を検索する場合にはmodeパラメータを日本の製品のカテゴリに指定します。 使用できるmodeは、books-jp、music-jp、classical-jp、dvd-jp、vhs-jp、electronics-jp、software-jp、videogames-jpです。また、日本語のデータを扱うことを表すために、localeパラメータをjpという値で付加する必要があります。 ここで使用される文字コードはUTF-8です。したがってスタイルシート(XSLファイル)を修正する場合には、UTF-8コードを使用しなければいけません。 また、検索する場合にもキーワードはUTF-8にしなければいけません。 今回使用した文字列(キーワード)は「伊東美咲」という文字列です。日本語で検索するには、まず元の文字列をUTF-8に変換します。次にhttpのリクエストとして送信するために、URLエンコードを行ないます。URLエンコード後の文字列は「%E4%BC%8A%E6%9D%B1%E7%BE%8E%E5%92%B2」となります。 <A href="http://xml.amazon.com/onca/xml3?t=apricotjam-22&dev-t=D14X1ERKGLFNNO&KeywordSearch=%E4%BC%8A%E6%9D%B1%E7%BE%8E%E5%92%B2&mode=books-jp&type=lite&locale=jp&page=1&f=http://jam.apricot.co.jp/affiliate/aws/lite-data-to-html-jp.xsl" target="_blank"> |

