2014-08-28 83 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錯誤意味着您快速提交請求 並且您的請求被限制。如果是這樣, 您需要將您的請求速率減慢爲每秒一個請求。