2014-08-28 4 views
0

У меня проблемы с использованием бутылочки. В соответствии с его инструкциями мне необходимо добавить error_handler в соответствии с инструкциями. в инструкции я поместил функцию:Ошибка при использовании bottlenose

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 ошибки являются переходными ошибками, отражающими внутреннюю ошибку Amazon. Ошибка 503 означает, что вы слишком быстро отправляете запросы , и ваши запросы дросселируются. Если это так, вам нужно замедлить скорость запроса до одного запроса в секунду.
Смежные вопросы