CAPTCHAの解答処理に必要なプロキシプールの規模を見積もる

著者:solvethree読了時間:1分

アプリケーションのスレッド数ではなく、同時に進行する解決から送信までのフローに合わせてプールの規模を決めてください。各フローのプロキシは対象サイトへの送信まで固定します。トークンが ready になった時点で解放したり、ローテーションしたりしないでください。

このページの内容

4つの固定割り当てから始める

4つの論理フローが稼働する場合は、4つのプロキシセッションの割り当てから始めます。各ジョブは、解決と対象サイトへの送信の両方で割り当てられたセッションを使用し、返されたブラウザー識別情報を使って速やかに送信します。

例 · 4つのアクティブな論理フロー
[
  {
    "job": 1,
    "proxyEnvironmentVariable": "PROXY_SESSION_1",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 2,
    "proxyEnvironmentVariable": "PROXY_SESSION_2",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 3,
    "proxyEnvironmentVariable": "PROXY_SESSION_3",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 4,
    "proxyEnvironmentVariable": "PROXY_SESSION_4",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  }
]

これは4つのジョブを4つのセッションに対応させるもので、必ずしも4つの異なる IP に対応させるわけではありません。スレッドごとに1つの IP が必要という普遍的なルールでも、実測した処理容量の上限でもありません。解決から送信までのフローを実行していないスレッドには、専用の割り当ては不要です。

プロキシベンダーが出口をローテーションする場合は、そのセッション機能または固定機能を使い、ソルバーと送信で同じ出口を共有してください。4つの環境変数を設定するだけでは、それは確保できません。アプリケーションで通常使うブラウザーヘッダーに置き換えず、成功したプロキシと、ソリューションの userAgent および secChUa を使って送信してください。

候補は代替手段であり、解決枠の追加ではない

reCAPTCHAリクエストには、proxyまたはproxyCandidatesのどちらか一方だけを指定します。候補リストには、パス、クエリ、フラグメントを含まない、異なるHTTPまたはHTTPSプロキシURLを最大12件指定できます。これらは1つのタスクに対する代替の出口であり、並列バッチではありません。各ジョブに12件の候補を持つ4つのジョブも、論理的には4つのフローであり、48回の解決ではありません。

候補を使う場合は、元の配列を保持してください。reCAPTCHAでは、solution.egressAttemptsが成功した候補を1始まりのインデックスで示します。送信に使うプロキシを選ぶ前に、この値が1から配列の長さまでの整数であることを検証してください。値がない、または無効な場合は、推測せずに処理を停止してください。

候補数の上限は、推奨プールサイズではありません。また、フォールバックによって利用可能な出口が保証されるわけでもありません。セッションタスクには単一のプロキシが必要なので、候補リストを適用しないでください。

IPを追加する前に4フロー構成をテストする

実際の対象ワークフローを実行してください。各ジョブについて、機密情報を含まないプロキシセッションのラベル、タスクの最終状態、対象サイトのレスポンスを記録します。ソルバーの準備完了と対象サイトによる受け入れは分けて扱ってください。そうしないと、すべての送信が失敗していても、プールが正常に見える可能性があります。

準備完了のトークンが送信待ちになっている。

アプリケーションは、4つのアクティブなフローが結果を生成する速度に合わせて送信できますか?

試してみましょう: 同時に進める解決処理を、アプリケーションが速やかに利用できる数まで減らしてください。プロキシセッションを増やしても、送信の遅延は解消しません。

対象サイトが準備完了の解決結果を拒否する。

送信には、成功した出口、返されたブラウザー識別情報、意図した送信先を使いましたか?

試してみましょう: IPを追加購入する前に、不一致を修正してください。すべて一致している場合は、同じ対象ワークフローでプロキシの選択肢を比較します。住宅用、モバイル、データセンターといった分類だけでは、受け入れられるかどうかは判断できません。

プロキシがHTTP 407を返す。

ユーザー名やパスワード内の予約文字も含め、プロキシ認証を確認してください。

試してみましょう: 認証情報を修正し、プロキシURL全体ではなく、認証情報の各構成要素をパーセントエンコードしてください。候補を追加しても、同じ認証ミスは解消しません。

4フローでの実行結果が、同時実行数を抑えた場合より悪いなら、拡張する前にその差を調べてください。より多くのフローを同時に実行する必要がある場合は、固定の割り当てを増やし、エンドツーエンドの結果を再度比較します。プロキシ接続が機能することも、プールが大きいことも、CAPTCHAスコアを裏付けるものではありません。

解決処理とプロキシ通信の予算を分ける

現在の従量課金料金では、準備完了になったreCAPTCHAタスク10,000件の料金は、アカウントクレジットや適用されるボーナスを考慮する前で$20です。解決に失敗した場合は返金されます。対象サイトによる拒否で、準備完了の解決処理が自動的に返金されることはありません。

プロキシ費用は別の項目として管理してください。プロバイダーの課金条件と、同じ解決・送信テストで測定した通信量を使います。設定したセッション数や候補数だけでは、通信料金はわかりません。

最初のタスクを実行しましょう。

$5のワークスペースクレジットで始められます。

ワークスペースを作成
CAPTCHAの解答処理に必要なプロキシプールの規模を見積もる · solvethree