亚马逊Pythonurllib.error.HTTPError:HTTP错误403:禁止

2024-09-24 02:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用python3amazonapi时遇到了一个问题。我注意到很多人都有同样的问题,但我到处寻找解决办法却没有结果。你知道吗

我在尝试这段简单的代码:

from amazon.api import AmazonAPI

amazon = AmazonAPI (my_AMAZON_ACCESS_KEY, my_AMAZON_SECRET_KEY, my_AMAZON_ASSOC_TAG, region=’IT’)
products = amazon.search(Keywords = "book name", SearchIndex = "Books")
print(products)
#<amazon.api.AmazonSearch object at 0x7fcc238e7a20>

在这之前它是有效的。你知道吗

for item in products:
    print (item.title, item.isbn, item.price_and_currency)

这里我得到以下错误:

File "amazon_loader.py", line 78, in getItemFromAmazon
    for item in products:
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/site-packages/amazon/api.py", line 544, in __iter__
    for page in self.iterate_pages():
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/site-packages/amazon/api.py", line 561, in iterate_pages
    yield self._query(ItemPage=self.current_page, **self.kwargs)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/site-packages/amazon/api.py", line 573, in _query
    response = self.api.ItemSearch(ResponseGroup=ResponseGroup, **kwargs)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/site-packages/bottlenose/api.py", line 274, in __call__
    {'api_url': api_url, 'cache_url': cache_url})
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/site-packages/bottlenose/api.py", line 235, in _call_api
    return urllib2.urlopen(api_request, timeout=self.Timeout)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/home/valentinim/.conda/envs/telepot/lib/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

urllib.error.HTTPError: HTTP Error 403: Forbidden

我想这是python库的问题,而不是AmazonAPI的问题。此外,我假设在尝试从下载的AmazonSearch对象请求信息时与标识有关,但我不知道如何解决该问题。你知道吗

我也试过Python2,没有区别。你知道吗


Tags: inpyselfapiamazonhomerequestlib