【发布时间】:2015-09-22 06:27:23
【问题描述】:
我在一天中的大部分时间都在处理这个问题,但很长一段时间以来一直在想出相同的错误 400。基本上,该应用程序的目标是从亚马逊推荐 URL 中解析一本书的 ISBN,并将其用作从亚马逊产品广告 API 中提取图像的参考键。该网页是用 Python 3.4 和 Django 1.8 编写的。我在这里花了很长时间研究并决定使用 python-amazon-simple-product-api ,因为它可以更容易地解析来自亚马逊的结果。
答案如:How to use Python Amazon Simple Product API to get price of a product
让它看起来很简单,但我还没有完全让它成功地查找产品。这是我的方法通常执行的控制台打印输出,并且已经填写了正确的 ISBN:
>>> from amazon.api import AmazonAPI
>>> access_key='amazon-access-key'
>>> secret ='amazon-secret-key'
>>> assoc ='amazon-associate-account-name'
>>> amazon = AmazonAPI(access_key, secret, assoc)
>>> product = amazon.lookup(ItemId='1632360705')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/amazon/api.py", line 161, in lo
okup
response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs)
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 242, i
n __call__
{'api_url': api_url, 'cache_url': cache_url})
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 203, i
n _call_api
return urllib2.urlopen(api_request, timeout=self.Timeout)
File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 461, in open
response = meth(req, response)
File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.4/urllib/request.py", line 499, in error
return self._call_chain(*args)
File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 579, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
现在我想我很好奇这是 PythonAnywhere 的一些怪癖,还是我错过了 Django 中的配置设置?据我所知,通过 AWS 和 Amazon Associates 页面我的密钥是正确的。我现在不太担心解析,只是获取对象。我什至尝试绕过 API 并仅使用 Bottlenose(API 扩展),但我得到相同的错误 400 结果。
我对 Django 和 Amazon 的 API 非常陌生,我们将不胜感激!
【问题讨论】:
-
亚马逊以“错误请求”错误回复您。这意味着,您可能正在发送不正确的信息。仔细检查你的钥匙等......
标签: python django amazon-web-services pythonanywhere