2021年12月27日月曜日

PA-API v5 の TooManyRequests の対策方法

PA-API v5 の TooManyRequests の対策方法

エラー概要

ネットでよく見かけるエラーの内容です
どの記事も根本解決の提案がなかったので自分の解決方法を紹介します

{"__type"=>"com.amazon.paapi5#TooManyRequestsException", "Errors"=>[{"Code"=>"TooManyRequests", "Message"=>"The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API."}]}

考えられる主な原因

  • 売上がない
  • 本当にリクエストの上限に当たっている (ほぼあり得ない)

実際のところ本当の理由を調べる方法はないようです

対策方法

Amazonの商品ページを直接スクレーピングする

おそらくこれが一番無難です

注意点

基本はスクレーピング NG なのですがログインしている状態のスクレーピングは NG のようです
シークレットブラウザなどログインセッションのないクライアントを使ってスクレーピングしまhそう

また当たり前ですが高負荷をかけるような短時間での大量のリクエストをするようなスクレーピングもやめましょう

実装時のポイント

User-Agent をブラウザ相当の User-Agent にしないと 503 が返ってきます
適当に Chrome などの User-Agent を設定すれば OK です

Selenium などのブラウザを使ってスクレーピングする場合は ajax などの処理を待つのも簡単にできますが curl や Ruby の URI.open などを使う場合は JavaScript による DOM の描画が終わる前に HTML を取得してしまうので待つ必要があります

ただ curl や URI.open にそのような機能はないのでもち ajax を待ちたい場合は Selenium などの技術を使うかリトライなどで対応することになります

0 件のコメント:

コメントを投稿