Amazon Product Advertising API を Python から利用してみます。
方法が2通りあったので、両方試してみました。
アクセスキー取得などの事前準備はこちらを参考にしてください。
bottlenose
bottlenoseというモジュールから使用してみます。
返り値が xml なため、BeautifulSoup でパースするのが王道みたいです。
必要なモジュールは pip からインストールします。
pip install bottlenose pip install beautifulsoup4
サンプルプログラムを作成します。
ACCESS_KEY などは適宜変更してください。
vim bottlenose_item_lookuup.py
import bottlenose
from bs4 import BeautifulSoup
ACCESS_KEY = "****"
SECRET_ACCESS_KEY = "****"
ASSOCIATE_TAG = "****"
amazon = bottlenose.Amazon(ACCESS_KEY, SECRET_ACCESS_KEY, ASSOCIATE_TAG, Region="JP")
response = amazon.ItemLookup(ItemId="4774142298", ResponseGroup="ItemAttributes",SearchIndex="Books", IdType="ISBN")
soup = BeautifulSoup(response,"lxml")
# 商品情報の部分のみ表示
print(soup.find('item').prettify())
実行すると xml が整形された形で出力されます。
python bottlenose_item_lookup.py # 以下が表示 <item> <asin> 4774142298 </asin> <detailpageurl> </detailpageurl> <itemlinks> <itemlink> <description> Add To Wishlist </description> <url> https://www.amazon.co.jp/gp/registry/wishlist/add-item.html%3Fasin.0%3D4774142298%26SubscriptionId%3DAKIAJ53VYCPRK7J4WTSA%26tag%3Drunble1-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3D4774142298 </url> </itemlink> <itemlink> <description> Tell A Friend </description> <url> </url> </itemlink> <itemlink> <description> All Customer Reviews </description> <url> </url> </itemlink> <itemlink> <description> All Offers </description> <url> </url> </itemlink> </itemlinks> <itemattributes> <author> 辻 真吾 </author> <manufacturer> 技術評論社 </manufacturer> <productgroup> Book </productgroup> <title> Pythonスタートブック </title> </itemattributes> </item>
個別で取りたい場合は以下のように。
title = soup.find('title').text
AttributeError: module ‘bottlenose’ has no attribute ‘Amazon’
最初、bottlenose.py という名前でファイルを作成・実行し、このエラーがでた。
モジュール名と同じファイル名をつけたことが原因でした。
ディレクトリ名も同名だと駄目なようです。
Special Thanks!
Python でモジュール利用時に AttributeError が出た時はファイル名ディレクトリ名が被ってないか調べること
python–amazon–simple–product–api
ライブラリをインストールします。
pip install python-amazon-simple-product-api
サンプルプログラムはこちら。
from amazon.api import AmazonAPI
ACCESS_KEY = "****"
SECRET_ACCESS_KEY = "****"
ASSOCIATE_TAG = "****"
amazon = AmazonAPI(ACCESS_KEY, SECRET_ACCESS_KEY, ASSOCIATE_TAG, region="JP")
try:
product = amazon.lookup(ItemId="4839947597")
print (product.title)
print (product.price_and_currency)
except Exception as e:
print (e)
実行するとタイトルと値段が表示されます。
$ python amazon_simple_product.py
# 以下が表示
'PHP+MySQLマスターブック'
('2916', 'JPY')
どちらを使うか
2つとも使用してみた感想としては、bottlenoseのほうが使いやすいと思いました。

コメント