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)

しかし、私は正しい応答を得ていません。なんで?

4

1 に答える 1

2

リクエストの提出が早すぎませんか?減速する必要があります。1 秒あたり 1 つのリクエストは適切な速度です。

Amazon Product Advertising API は、問題を処理する最善の方法を簡単に判断できるように、3 つのカテゴリでエラーを返します。

  • 2XX エラーは、リクエストの誤りによって発生します。たとえば、要求に必要なパラメーターが欠落している可能性があります。応答のエラー メッセージは、何が問題なのかを明確に示しています。
  • 4XX エラーは非一時的なエラーです。このエラーを受け取ったら、要求を再送信してください。
  • 5XX エラーは、Amazon 内部のエラーを反映した一時的なエラーです。503 エラーは、リクエストの送信が速すぎて、リクエストが調整されていることを意味します。この場合は、リクエスト レートを 1 秒あたり 1 リクエストに下げる必要があります。
于 2014-08-29T01:34:58.840 に答える