python-amazon-simple-product-api 通过 pythonanywhere 出现错误 400
Error 400 with python-amazon-simple-product-api via pythonanywhere
一天中的大部分时间我都在处理这个问题,但很长一段时间以来一直出现相同的错误 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 和亚马逊的 API 很陌生,如有任何帮助,我们将不胜感激!
您还没有授权您的帐户进行 API 访问。为此,您可以前往 https://affiliate-program.amazon.com/gp/advertising/api/registration/pipeline.html
一天中的大部分时间我都在处理这个问题,但很长一段时间以来一直出现相同的错误 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 和亚马逊的 API 很陌生,如有任何帮助,我们将不胜感激!
您还没有授权您的帐户进行 API 访问。为此,您可以前往 https://affiliate-program.amazon.com/gp/advertising/api/registration/pipeline.html