APIレート制限とは?
Scrapeless Scraping APIは、現在のサービスガイダンスに示されたアカウントおよび製品の制限に対して計画された使用が必要な文書化されたデータリクエストを受け入れます。
APIレート制限は、呼び出し元が定義された期間内または一度に作成できるリクエストの数を制御するサービスルールです。制限は共有容量を保護し、公正なアクセスをサポートし、使用を予測可能にします。正確な単位が重要です:リクエスト毎秒、リクエスト毎分、同時ジョブ、および月間クレジットは異なる質問に応えます。他のものから推測してはいけません。
制限を無視するクライアントは、期待したデータではなく応答を受け取る可能性があります。過剰に調整するクライアントは、利用可能な容量を未使用のまま残すかもしれません。実際のタスクは、プロバイダーの実際のポリシーを特定し、需要を測定し、アプリケーションが許可された配分内に留まるようにリクエストをスケジュールすることです。
API制限が測定するもの
時間ウィンドウごとのルールは、定義された間隔内で呼び出し元に帰属するリクエストをカウントします。同時実行ルールは、まだ進行中の操作をカウントします。使用クォータは、より長い会計期間にわたって請求可能な単位をカウントする場合があります。これらの測定は共存することができます。日々のクォータが不足しているアプリケーションは、短いバースト制限を超えることができますし、遅く送信しているクライアントは、同時に多くの長いタスクを実行することになります。
プロバイダーは、リクエストをAPIキー、ユーザー、組織、IPアドレス、または操作に帰属させることができます。 HTTP 429ステータスの説明 実装の範囲が異なることを示しています。1つのプロセスごとに1つのキーが独立した容量を作成するとは限りませんし、異なるエンドポイントが同じ閾値を持つとは限りません。アカウントおよびエンドポイント特有の文書を読んでください。
単位も明確にする必要があります。1つのリクエストが、初期応答の後も続くタスクを作成する場合があります。バッチリクエストは、単一アイテムリクエストとは異なる単位を消費する場合があります。プロバイダーが使用クレジット残高のみを公開している場合、それは必ずしもレート制限ではありません。各表記されたルールを別々にモデル化し、スケジューラーが実際に適用されるものを遵守できるようにします。
制限が存在する理由とその適用範囲
サービスには有限の計算能力、ネットワーク、および下流の容量があります。制限は、1つの呼び出し元の突然のトラフィックが他の呼び出し元を劣化させるのを防ぐことができます。また、クライアントループが意図よりも多くのリクエストを送信した場合、偶発的な負荷を減らすこともできます。ポリシーは、アプリケーションコードがリクエストを確認する前のゲートウェイで強制されるか、特定のコストモデルでより具体的な操作の内部で強制される可能性があります。
上流のウェブサイトとAPIプロバイダーは別のシステムです。スクレイピングAPIは、ターゲットウェブサイトが独立したアクセスおよびトラフィックルールを持つ一方で、独自のアカウントコントロールを持つことがあります。プロバイダーの容量配分は、ターゲットの適用される条件やアクセス制限を無視する権限を与えるものではありません。呼び出しているサービスの実際の制限および承認されたデータに基づいて収集を計画してください。
HTTPステータス拡張429 は、呼び出し元が一定の期間内にリクエストを過剰に送信したことをサーバーに伝えることを許可します。それは一つの普遍的なカウントアルゴリズムを定義するものではありません。その選択はサービスに属します。クライアントコードは、特定のバケット実装を推測するのではなく、公開されたポリシーおよび観察された応答フィールドに依存するべきです。
HTTP 429の読み方
HTTP 429 Too Many Requestsは、呼び出し元がレート制御を超えたことを示しています。それは、形式が不正なリクエストや認証情報が欠如していることとは異なります。応答は、どのルールが超えられたのかを説明し、呼び出し元が追加のリクエストを発行する前にどのくらいの時間待つべきかを示す場合があります。本文とヘッダーはプロバイダー特有であるため、秘密を暴露することなく関連するフィールドをログに記録してください。
ステータスだけでは、その制限が一つのエンドポイント、全体のアカウント、または共有されたIPに結びついているかどうかはわかりません。リクエストのタイムスタンプ、キー、操作、および同時作業負荷を文書化されたポリシーと比較してください。複数の作業者が同じ配分を共有している場合、1つの作業者のローカルカウントでは総計を説明できません。利用可能な場合は中央で調整するか、プロバイダー使用データを使用してください。
すべての非200の結果をレート制限として扱わないでください。アクセス拒否、認証失敗、利用できない上流ソースは異なる応答を必要とする場合があります。スケジュールを変更する前に、実際のステータスと文書化されたエラーを分類してください。 HTTPセマンティクス標準 は、それらのカテゴリを分けておくのに役立つより広いステータスコンテキストを提供します。
既知の配分内での作業のスケジューリング
クライアントは、保留中の作業をキューに配置し、プロバイダーの公開されたルールに一致するレートでリリースできます。固定のリクエストウィンドウの場合、共有アカウントに帰属するリクエストを追跡し、その許容量を超えないようにします。同時実行制限の場合、既存のタスクが完了すると新しいタスクをリリースします。これらの制御は、任意の呼び出し間のスリープではなく、プロバイダーの実際の単位を表すべきです。
異なる操作は、異なる量の時間またはクレジットを必要とする場合があります。レイテンシが重要な場合、インタラクティブリクエストのスケジュールをバックグラウンド収集から分けます。プロバイダーのポリシーとビジネスニーズがそれを正当化する場合、緊急なパスのための容量を確保します。また、キューは作業を重複排除する場所を提供します:同じ変更のないレコードを何度も要求することは、結果を改善せずに配分を無駄にすることがあります。
プロバイダーが使用ヘッダーまたはダッシュボードカウンターを提供する場合、それらをクライアント側の会計と比較してください。それらは、同じキーを使用している他のプロセスや、期待とは異なるカウントをするルールを明らかにすることができます。公開されたガイダンスに推測された閾値をハードコーディングしないでください。現在のプロバイダー文書に結びついた設定値を使用し、サービスが変更されたときにそれを見直してください。
レート制限、クレジット、およびデータの新鮮さ
レート制限はペースを制御し、クレジット残高やプランの許容範囲は消費を制御します。ワークフローは一方には適合しても、もう一方を侵害することがあります。実行に必要なソースレコード数、アクターコール、および結果検査の推定を行います。その後、製品の料金体系と非同期操作が提出、完了、または別の文書化された段階でカウントされるかを確認してください。
鮮度目標はキャパシティと衝突することがあります。カタログが毎日の更新を必要とする場合でも、毎日すべてのアイテムをカバーできない場合は、どれだけ頻繁に変更されるかと重要度に基づいてレコードの優先順位を付けます。消費者がその年齢を確認できるように、各レコードに観察時間を保存します。APIの応答が構文的に成功したからと言って、時代遅れの値を現在のものとして提示しないでください。
その Scrapeless Scraping API ドキュメント はサポートされているアクターワークフローを特定し; 製品概要 は構造化データアクセスについて説明します。適用可能なキャパシティについて、現在のアカウント使用状況および製品ガイダンスを参照してください。関連する アクターガイド は、需要を計画する際に即時結果をタスクベースのフローから区別するのに役立ちます。
予期しない制限の診断
最初に、正確な応答とそれを生成した操作を特定します。リクエストが意図したキーを使用しているか、バックグラウンドワーカーがそのキーを共有しているかを確認します。現在のトラフィックを特定の製品およびエンドポイントのポリシーと比較します。1秒ごとに1つのリクエストを送信するローカルプロセスは、アカウント全体の制限を超える艦隊の一部である可能性があります。
次に、タスクライフサイクルおよび重複を調査します。ドキュメントに要求されているよりも頻繁に非同期結果をポーリングすると、基礎となるタスクを加速せずにリクエストを消費する可能性があります。重複したジョブは、重複したスケジュールによって引き起こされる場合も同様です。キャップリクエストを出す前にワークフローモデルを修正してください。そうしないと、追加のキャパシティが無駄を増幅するだけかもしれません。
最後に、文書化された制限と観察された一時的な状態の区別を保持します。単一の429は、このリクエストがアクティブな規則を超えたことを証明します。すべての閾値を明らかにしたり、永続的なポリシー値を保証したりするものではありません。プロバイダーに具体的な質問をするために必要な証拠を記録し、クライアントの動作を確認済みの配分内に保ちます。
結論
API レート制限は、プロバイダーが定義した配分内でリクエストのペースまたは同時作業を制御します。数えられている単位を理解し、ワーカー間で会計を共有し、HTTP 429 を公開されたポリシーの文脈で解釈します。健全なスケジュールは、サービスキャパシティとデータワークフローの質の両方を保護します。
Scraping API ワークロードを計画する
1つの文書化されたアクターから始め、アカウントで視認できる制限に合わせてリクエストスケジュールを設定します。
今すぐサインアップして $5の無料クレジットを手に入れます — クレジットカードは不要です.
$5クレジットを請求する →FAQ
APIレート制限は月間クォータと同じですか?
APIレート制限は通常、ペースまたは同時処理を制御し、月間クォータは請求または配分期間を通じた総使用量を制御します。プロバイダーが両方を適用することがあります。スケジューラを設計する前に、それぞれの公開されたルールの単位、範囲、および期間を確認してください。
HTTP 429はAPIクライアントにとって何を意味しますか?
HTTP 429は、サーバーが呼び出し元が定義された期間内にあまりにも多くのリクエストを送信したと見なしていることを意味します。応答には、アクティブなルールまたは待機間隔に関する詳細が含まれる場合があります。トラフィック動作を変更する前に、プロバイダーのエラーフォーマットとアカウント使用状況を確認してください。
複数のワーカーが協調なしに1つのAPIキーを使用できますか?
複数のワーカーは、1つのAPIキーまたはアカウントを使用するときに同じ配分を共有できる場合があります。各ワーカーは、ローカルの閾値を下回っているように見える一方で、その結合トラフィックがプロバイダーのルールを超える可能性があります。アプリケーション全体で共有カウントまたは同時処理予算を調整してください。
レート制限は、収集できるレコード数を教えてくれますか?
リクエスト制限は、単独でレコード数を決定するわけではありません。1つのリクエストは、操作に応じてゼロ、1、または複数のレコードを返すことができ、別のクォータは使用状況を異なる方法で考慮する場合があります。文書化されたアクターの動作からレコードを推定し、代表的なワークロードを測定します。