2014-08-28 84 views
0

我使用瓶装时出现问题。 根据其说明,我需要按照说明添加error_handler。 中的说明,我把这个函数:使用瓶装时出错

def error_handler(err): 
    ex = err['exception'] 
    if isinstance(ex, HTTPError) and ex.code == 404: 
     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) 

但我发现了没有正确的回应。为什么?

回答

2

您是否过快提交请求?你需要放慢速度。每秒一个请求是一个很好的速度。

亚马逊产品广告API返回三类错误,这样就可以很容易地确定如何最好地处理这个问题:

  • 2XX错误是由请求错误造成的。例如,您的 请求可能缺少必需的参数。 中的错误信息反应清楚地表明出了什么问题。
  • 4XX错误是非瞬态错误。收到此错误后, 重新提交请求。
  • 5XX错误是反映亚马逊 内部错误的瞬态错误。 503错误意味着您快速提交请求 并且您的请求被限制。如果是这样, 您需要将您的请求速率减慢为每秒一个请求。