0

我得到503的。根据bottlenose的说明,我需要按照说明添加一个error_handler。在说明中我放置了函数:

def error_handler(err):
    ex = err['exception']
    if isinstance(ex, HTTPError) and ex.code == 503:
        time.sleep(random.expovariate(0.1))
        return True

指令中的示例说要使用这一行:

amazon = bottlenose.Amazon(ErrorHandler=error_handler)

我有这个:

amazon = bottlenose.Amazon(AWSAccessKeyId=ACCESS_KEY_ID, AWSSecretAccessKey = SECRET_KEY,AssociateTag = ASSOC_TAG)

我尝试以多种方式添加选项,例如:

amazon = bottlenose.Amazon(AWSAccessKeyId=ACCESS_KEY_ID, AWSSecretAccessKey = SECRET_KEY,AssociateTag = ASSOC_TAG,ErrorHandler=error_handler)

但我仍然得到503。我假设我没有正确设置它。我希望有人能告诉我我在哪里错过了这个。谢谢

4

1 回答 1

0

您是否太快提交请求?你需要放慢速度。每秒一个请求是一个不错的速度。

亚马逊产品广告 API 返回三个类别的错误,以便您可以轻松确定如何最好地处理问题:

  • 2XX 错误是由请求中的错误引起的。例如,您的请求可能缺少必需的参数。响应中的错误消息清楚地表明出了什么问题。
  • 4XX 错误是非瞬态错误。收到此错误后,重新提交请求。
  • 5XX 错误是反映亚马逊内部错误的暂时性错误。503 错误意味着您提交请求的速度过快并且您的请求受到限制。如果是这种情况,您需要将请求速率降低到每秒一个请求。
于 2014-08-11T03:07:03.367 回答