AntiGateタスクでキャプチャをバイパスする方法
長年の研究開発を通して、弊社はロボットに人間の作成されたキャプチャゲートを通過させるユニバーサルソリューションを作成しました。「AntiGate」といいます。人間の作業員が特定のタスクを実行するためのシナリオテンプレートを使っています。

ある時点で、お客様のアプリは、新しい種類のキャプチャ、難読化されたブラウザスクリプトなどの、自動化保護「ゲートウェイ」に遭遇します。この場合、AntiGateタスクの出番です。ワーカーの1人を委任して実際の人間のブラウザセッションを構築するのです。
- まず、テンプレートを選択します。既存のものまた独自に作成したものも利用できます。テンプレートとは、ワーカーが実行するステップバイステップの命令のセットです。
- 次に、ンプレートに必要な追加データを提供します。たとえば、入力の値、入力のCSSセレクター、移動先のアドレスなど。テテンプレートについては、後ほど詳しく説明します。
- それから、プロキシをオプションで選択します。各セッションCookieを正確なIPアドレスに関連付けるウェブサイトの場合は必要とされるようになります。
AntiGateテンプレートとは?
AntiGateテンプレートは、ワーカーが実行する正確なシナリオを定義します。テンプレートはステップで構成され、すべてが順番に実行されます。1つのステップが完了すると、ワーカーは次のステップに進みます。すべてのステップが完了すると、タスクが終了し、ワーカーセッションのスナップショットが取得され、アプリに送り返します。
どんなステップがありますか。
- 自動または手動で入力フィールドに内容を入力します。
- 内容の例がページに表示(または非表示)されるのを待ちます。
- WCSSで定義されたDOM要素がページに表示される(またはページから消える)のを待ちます。
- キーワードがワーカーの現在のブラウザーのアドレスに表示(またはまたは非表示)されるのを待ちます。
例を見てみましょう。開発者センターに移動し、テストのために無料のテンプレートを作成します。心配しないでください、何も壊れたりしません!



デモ版をロードしました。アカウントに保存して、後で自分でテストすることができます。テンプレートプロパティの完全なリストは下記となります。
- テンプレート名。保存すると、変更できなくなります。公開すると、このテンプレートはこの名前でAPIで使用できるようになります。
- ユーザーのための説明。パブリックテンプレートは、テンプレートカタログで利用できます。
- ワーカーのための説明。このテキストは、ページの上部に表示されます。 ワーカーインターフェイスの例
- 変数。これは、永続的な値の代わりに各ステップで使用できる変数名のリストです。この例では、「ログイン」と「パスワード」の2つの変数があり、ステップ1と2で、デモログインフォームに入力するために使用されます。このように、テンプレートに永続的なログインとパスワードをハードコーディングする代わりに、APIを介してこれらの値を提供できます。 ステップ1と2で使用される変数
- ワーカー手順。ここで、ステップのシナリオを編集および変更できます。この例では、次のように行います。
1.テキストフィールドにCSSセレクター「#login」が自動的に入力されます。テキストフィールドの値は、変数「ログイン」によって定義されます。
2.テキストフィールドにCSSセレクター「#password」が自動的に入力されます。テキストフィールドの値は、変数「パスワード」によって定義されます。
3.コントロールテキストがページに表示されるのを待ちます。値「ログインで合格したテスト」に永続的に設定されます。
これでテンプレートが保存され、開発者センターに表示されます。その場合、ステータスが「サンドボックス」であることに注意してください。これは、自分だけが利用でき、APIでは利用できないことを意味します。そこから、ワーカーのように、新しく作成したテンプレートをテストしてみることができます。
テンプレートのテスト
現在では、Chromeブラウザを使用する必要があります。プロフィールのCookieにアクセスするプラグインをインストールする必要があるため、このブラウザで新しいユーザープロフィールを作成することをお勧めします。

次に、テンプレートカードで、「テスト」ボタンを押します。

指示に従い、ご利用のプラットフォームにあったプラグインをダウンロードします。次に、それを有効にするためにページを再読み込みする必要があります。その後、「ログイン」変数と「パスワード」変数にランダムな値を入力して、「テスト起動」ボタンを押します。すると、下記のような新しいページが開きます。

また、ログインフィールドとパスワードフィールドは、変数を入力するときに非表示になります。このようになっているのです。ワーカーは開発者コンソールを介してタスクデータに完全にアクセスできますが、彼らの99.99%は、そこで何が起こっているのかをわざわざ調べていません。
Recaptchaを解決するには、「ログイン」ボタンを押します。それでテンプレートの最後のステップ「WAIT_CONTROL_TEXT_PRESENT」が入力されます。プラグインは、テンプレートで「ログインで合格したテスト」(永続的に定義されている制御フレーズ)を検索します。その後、タブが自動的に閉じ、セッションスナップショットが結果フィールドに表示されます。

そのスナップショットのデータはAPIからの受信できます。ただし、テンプレートをAPIに適用するには、まず、テンプレートを公開する必要があります。
テンプレートの公開
テンプレートを公開する際に、プライベートまたはパブリックという2つのオプションがあります。
- プライベートテンプレートは、APIキーでのみ使用できます。他のユーザーは利用できません。レビューと公開の費用:1ドル。
- パブリックテンプレートは誰でも利用できます。このテンプレートを使用すると、ユーザーの費やした費用の%5を獲得できます。テンプレートに問題が発生した場合に、サポート提供のための連絡先を残す必要があります。レビューと公開の費用:1ドル。
弊社すべてのテンプレートを注意深くレビューしております。本番モードに正常に切り替えるには、下記のように、いくつかの基本的な要件を満たす必要があります。
- いかなる種類の違法行為はありません。
- 既存のテンプレートと重複してはなりません。
- 未完成のまたはテストテンプレートを提出しないでください。
- レビュー用にウェブアドレスと変数値の例を提供してください。こちらでテストを行う際に、すべての手順が正常に完了する必要があります。
APIリクエスト
上記のAntiGateテンプレートの場合、APIへのタスク作成リクエストは、次のようになります。
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY",
"task":
{
"type":"AntiGateTask",
"websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
"templateName":"Demo sign-in at anti-captcha.com #123456",
"variables": {
"login":"some value",
"password":"some value"
}
}
}' https://api.anti-captcha.com/createTask
つまり、「templateName」パラメータと「variables」パラメータをテンプレートに入力します。
タスク結果の使用
AntiGateタスク戻るが正常に完了しました。これは、「cookies」、「localStorage」、「fingerprint」、「url」を含むソリューションです。 ソフトウェアで実行するのは、リクエストの「cookies」を使用して「url」に移動し、少なくともブラウザユーザーエージェントに「fingerprint.self.navigator.userAgent」の値を使用することです。より複雑なウェブサイトは、重要なデータをlocalStorageに保存します。これは一種の最新バージョンのCookieです。この場合、実際にJavascriptを実行する前に、このデータをページに挿入する必要があります。これらは、Puppeteerなどの開発環境で実行できます。これについて別の記事を参照してください。
独自のテンプレートを作成する
テンプレートの例をロードせずに、上記の手順を実行します。すべての詳細をうまく記入し、慎重に手順を追加します。すべてのステップが順番に実行されることに注意してください。 プラグインは、現在のステップが完了するまで、次のステップの実行を許可しません。テンプレートはいつでも保存して、ワーカーのブラウザープラグインでテストできます。
価格設定
今回は、1000タスクあたり2ドルという価格にします。また、タスク実行中の1秒ごとに、タスク価格の1/60のコストがかかります。たとえば、タスクのコストは0.002ドルで、ワーカーは20秒かけて解決しています。
最終的なコストは$ 0.00266 = 0.002 +(0.002 / 60 * 20)になります。
まとめ
この記事を書いている2021年12月現在では、この機能はまだ「ベータ版」です。AntiGateタスクに関するコメントや提案はサポートチケットで投稿してください。