17
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Amazon Product APIをPythonで叩く簡単な方法

自分でAPIを叩いてもいいんだけど,ドキュメントが読みづらいし,結局リクエストに何のパラメーターが必要なのかパッと書いてないですし,なんか自分でハッシュ化したSigunatureをURLに付けたりしないといけなくて面倒なので,便利なライブラリを使いましょう.

python-amazon-simple-product-api

超便利です.
インストールなどはREADME読めばすぐに分かります.

実際に実行してみるとこんな感じです.
regionを指定してやらないと海外のストアを検索しているのか,商品が見つからないので,region="JP"を忘れないようにしてください.

In [9]: amazon = AmazonAPI(ACCESS_KEY, SECRET_KEY, ASSOCIATE_ID, region="JP")
In [10]: product = amazon.lookup(ItemId='B00E7N623K')
In [11]: product.__dict__
Out[11]:
{'api': <amazon.api.AmazonAPI at 0x1037e9cf8>,
 'aws_associate_tag': 'アソシエイトID',
 'parent': None,
 'parsed_response': <Element {http://webservices.amazon.com/AWSECommerceService/2013-08-01}Item at 0x1035b9e08>,
 'region': 'JP'}

In [12]: product.parsed_response
Out[12]: <Element {http://webservices.amazon.com/AWSECommerceService/2013-08-01}Item at 0x1035b9e08>

In [13]: product.parsed_response.ItemAttributes
Out[13]: <Element {http://webservices.amazon.com/AWSECommerceService/2013-08-01}ItemAttributes at 0x10382e508>

ライブラリの中身ではlxmlでxmlのレスポンスをパースしている気がします.
実際,上記の実行例の中でもlxmlのElementインスタンスが入れ子になって含まれていますね.

長々とAPIの公式ドキュメント読みましたが,明らかにこれが楽です.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
17
Help us understand the problem. What are the problem?