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のほうが使いやすいと思いました。
コメント