PythonとAmazonのProduct Advertising API

最近、AmazonのProduct Advertising APIをPythonでごにょごにょするということをやっていて、ある程度やり方というかライブラリを見つけたりとかしたので、忘れないように書き残しておきます。

1.Product Advertising API への登録

ここから登録します。
登録が完了するとアクセスキーとシークレットキーが配布されます。

もしアクセスキーを忘れるなどして分からなくなったら、ここからアカウント→セキュリティ証明書と辿って確認できます。

2.Pythonライブラリ選択

Product Advertising APIをうまくラップしていつつ簡単に使えそうなライブラリとして、bottlenoseを選んでみました。

選んだ理由は、探した中で最もシンプルかつ実装の把握が容易で、さらに開発が比較的活発と思われたからです。
(他にもっといいのがあれば教えてください)

3.インストール

bottlenoseをインストールします。
残念ながらPyPIに上がっているbottlenoseは、バージョンがかなり古いようで、日本語(というかマルチバイト文字列)がうまく扱えません。
けれども、GitHubの最新版だと問題ないので、GitHubからソースをダウンロードして、インストールします。

  
$ curl -L https://github.com/dlo/bottlenose/tarball/master -o bottlenose.tgz  
$ tar zxvf bottlenose.tgz  
$ cd dlo-bottlenose-xxxxxxx  
$ python setup.py build  
$ python setup.py install  

また、bottlenoseはAmazonのAPIを叩いて取得したXMLデータを自動でオブジェクト化したりはしてくれないので、そのあたりを自分で面倒見る必要があります。
世の中には、XMLからオブジェクトを作成するlxmlという便利なライブラリがあるので、それを今回は使います。

  
$ pip install lxml  

4.商品検索

準備が整ったところでAmazonの商品を検索してみます。
サンプルとして、Amazonのブックカテゴリを対象に「東野圭吾」を検索してみました。
そのコードがこちら。
(access_key_idとsecret_access_keyには、登録時に配布されたものを入れます)

そして結果がこちら。

  
$ python sample.py  
真夏の方程式  
秘密 (文春文庫)  
麒麟の翼 (特別書き下ろし)  
悪意 (講談社文庫)  
赤い指 (講談社文庫)  
夜明けの街で (角川文庫)  
ダイイング・アイ (光文社文庫 ひ 6-11)  
流星の絆 (講談社文庫)  
白夜行 (集英社文庫)  
さまよう刃 (角川文庫)  

すばらしく簡単です。

5.参考

Product Advertising APIのドキュメント