2005年02月13日
アマゾンWebサービス(AWS)利用メモ
本、エレクトロニクス、DVDなどさまざまな商品を豊富に取りそろえているAmazon.co.jp。
このアマゾンには、Amazon Webサービス(AWS)という商品情報を取得するためのWEBサービスが用意されています。
このサービスが、どんなサービスなのか簡単に説明するとするなら、
「アマゾンの商品情報データベースにアクセスして、情報を利用できる」
ような感じのサービスです。
このサービスを元に作ってみたページは
→[Z]ZAPAnetサーチ
以下、アマゾンWebサービスに関するメモ。
(個人的なメモなので、内容の保証はありません)
このアマゾンには、Amazon Webサービス(AWS)という商品情報を取得するためのWEBサービスが用意されています。
このサービスが、どんなサービスなのか簡単に説明するとするなら、
「アマゾンの商品情報データベースにアクセスして、情報を利用できる」
ような感じのサービスです。
このサービスを元に作ってみたページは
→[Z]ZAPAnetサーチ
以下、アマゾンWebサービスに関するメモ。
(個人的なメモなので、内容の保証はありません)
・無料デベロッパー・トークンを申し込み、デベロッパーキット(SDK)をダウンロードする
アマゾンのサイトへ行き、申し込む。
アフィリエイトをしたい場合には、アソシエイトプログラムにも申し込む。
・AWSで利用できる機能を理解する
アマゾンでは、XML/HTTPとSOAPの2種類が利用できるようになっている。
自分の環境に合わせてどちらを利用するかを決める。
・RESTでXMLを取得するためのパラメーターを確認する
通信は全てHTTPを使用。
2005年2月時点では、Amazon E-Commerce Service 4.0(ECS 4.0)が利用できる。
URLはhttp://webservices.amazon.co.jp/onca/xml。
MethodはGET。
Parameterは、ドキュメントを読んで確認する。
Service=AWSECommerceService
&SubscriptionId=[登録したsubscription ID]
&AssociateTag=[アソシエイトID]
&Version=[バージョン指定]
・問い合わせの種類を決める
問い合わせの種類として、
&Operation=ItemSearch
のパラメーターを追加する。(その他の情報を取得したい場合には変更する)
・取得したい情報を決める
たくさんの情報取得と画像が必要な場合は、
&ResponseGroup=Large,ItemAttributes,Images
とする。(その他の情報を取得したい場合には変更する)
・取得する商品の種類を決める
すべての商品情報が欲しい場合は、Blended。
本の情報が欲しい場合には、Books。
音楽の情報が欲しい場合には、Musicなどとする。
&SearchIndex= Blended
・検索結果のページを指定する
1ページ目の場合は、1を指定する。
&ItemPage=1
・出力するフォーマットを指定する
XMLで取得する場合には、text/xmlを指定する。
&ContentType=text/xml
・実際にkeyword検索でXMLを取得してみる
パラメーターにKeywordsを追加する。
&Keywords="エンコードした文字列"を追加する。
アマゾンの場合、文字コードがUTF-8なので注意する。
SJISやEUC-JPなどでファイルを作成している場合、まずUTF-8にエンコードしてから、さらにURLエンコードする。
仮にEUC-JPで作成したPHPファイルの場合、
urlencode(mb_convert_encoding("キーワード", "UTF-8", "EUC-JP")
のように変換する。
例:全てのブラウズ(カテゴリ、ジャンル)情報から”ドラクエ”でXMLを取得する場合
http://webservices.amazon.co.jp/onca/xml?
Service=AWSECommerceService
&SubscriptionId=*********
&AssociateTag=*********-22
&Operation=ItemSearch
&Version=2004-10-04
&ResponseGroup=Large,ItemAttributes,Images
&SearchIndex=Blended
&ItemPage=1
&Keywords=%E3%83%89%E3%83%A9%E3%82%AF%E3%82%A8
&ContentType=text/xml
これでXMLを取得できる。(見やすくするため、改行を入れてあるが実際には一行)
・その他のパラメータを試す
その他のパラメーターに関しては、自分の好きなように追加し、試してみる。
・取得したXMLファイルをXSLを用いて変換する
xslパラメータを追加して、XSLTモードでXMLをHTMLに変換する。
これで誰にでも見やすい形にデータを変換できる。
&Style=自分のxsl.xsl
(XSLTスタイルシートに関するこの記事での説明は無し)
・取得したXMLファイルをパースする
XSLTスタイルシートを使いたくない場合には、自分でXMLファイルをパースする。
SAXやDOMなどの技術を使い変換してHTMLファイルなどにする。
(パースに関するこの記事での説明は無し)
・SOAPで情報を取得する
SOAPの技術が使える人は、こちらの方法も試してみる。
・まとめ
・これだけ情報量の多いアマゾンのデータベースを利用できるのはかなり良い。
・ドキュメントが英語でわかりにくい。
・パラメーターがたくさんあって、最初は理解しにくい。
・XMLの要素の作りが複雑でわかりにくい。
・取得できるXMLの情報はさすが。
・サーバーのレスポンスはそこそこ。
・サーバー側の技術を使わなくても、XSLTだけでも利用できるのは便利。
アマゾンは、現状に慢心することなく、WEBサービスなどのサービスも提供しているところがさすがです。
評価点やレビュー内容なども取得できるので、変換の方法によっては、本家アマゾンよりわかりやすいページ構成も可能かもしれません。
試しにアマゾン検索、楽天検索、ビッダーズ検索を組み合わせてサイトを作ってみました。
→[Z]ZAPAnetサーチ
トラックバックURL
この記事へのトラックバック一覧
自分のページのジャンルとは異なるジャンルとも 相互リンクをするほうがいいと思います。
アクセス数を増やすには【科学的アフィリエイト】at 2005年02月14日 21:57
「アマゾンWebサービス」を使うとアマゾンの膨大なデータ-ベースの中から自由に画像やレビューを引っ張り出して自分のサイトで使えるようになります。
ちょっとプログラムの知識のある人なら、どうにか使える...
アマゾンWebサービス【a-ki's factory Blog】at 2005年03月08日 22:42
この記事へのコメント一覧
すごい分かりやすい説明ですね^^
僕もやってみようかな。
僕もやってみようかな。
Posted by 最強ナンパ師 at 2005年02月14日 17:11
