エラー概要
ネットでよく見かけるエラーの内容です
どの記事も根本解決の提案がなかったので自分の解決方法を紹介します
{"__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 件のコメント:
コメントを投稿