Amazon Product Advertising API を python3 で使う
7186 ワード
次のページのプログラムを python3 で走るようにしました。
Amazon Product Advertising APIの利用(Python)
pa_api.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# pa_api.py
#
# ------------------------------------------------------------------
import sys
import requests
import hmac
import hashlib
import base64
import urllib.parse
from datetime import datetime
#
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
# Amazon Product Advertising APIの設定
hash_func = hashlib.sha256
encode_func = base64.b64encode
#id関係の設定
access_key = "AK******************"
secret_key = "mn**************************************"
associate_id = "w**********"
#
# メッセージの生成
time_stamp = urllib.parse.quote(datetime.now().strftime('%Y-%m-%dT%H:%M:%S'))
#
# 商品のASINコード
asin_code = "487311778X" # (ASINコードがない場合は変わりにISBN-10)
#
query="AWSAccessKeyId=" + access_key + \
"&AssociateTag=" + associate_id + \
"&ItemId=" + asin_code + \
"&Operation=ItemLookup" + \
"&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews" + \
"&Service=AWSECommerceService" + \
"&Timestamp=" + time_stamp + \
"&Version=2013-08-01"
api_domain = "webservices.amazon.co.jp"
api_page = "/onca/xml"
message = "\n".join(["GET", api_domain, api_page, query])
#
# HMACのSignature生成
#
sing_gen = hmac.new(secret_key.encode('utf8'), message.encode('utf8'), hash_func)
raw_sign = sing_gen.digest()
sign = urllib.parse.quote(encode_func(raw_sign))
# APIの呼び出し
url = "http://" + api_domain + api_page + "?" + query + "&Signature=" + sign
res = requests.get(url)
with open(asin_code + ".xml", "wb") as ff:
ff.write(res.content)
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------
実行すると、
487311778X.xml が出来ます。
これを整形するには
xmllint --format 487311778X.xml
Author And Source
この問題について(Amazon Product Advertising API を python3 で使う), 我々は、より多くの情報をここで見つけました https://qiita.com/ekzemplaro/items/89271f1207fdc480c634著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .