Menu

AntiGateタスクでcaptchaをバイパスする方法

AntiGateタスクチュートリアルの新しいビデオバージョンはここです。.

長年の研究開発を通して、当社はロボットが人間によって構築されたcaptchaゲートを通過する為の一般的なソリューションを作成しました「AntiGate」といい、人間の作業員が特定のタスクを実行するためのシナリオテンプレートです。

ある時点で、あなたのアプリは、新しい種類のcaptcha、難読化されたブラウザスクリプトなどの、自動化保護 「gateway」に遭遇します。そこで、AntiGateタスクの出番です。作業員の1人を委任して実際の人間のブラウザセッションを構築するのです。
  • まず、テンプレートを選択します。既存のものでも独自に作成したものでも利用できます。テンプレートとは、作業員が実行するステップバイステップの指示のセットです。
  • 次に、テンプレートに必要な追加データを入力します。たとえば、入力の値、入力のCSSセレクター、移動先のウェブアドレスなどです。テンプレートについては、後ほど詳しく説明します。
  • それから、プロキシをオプションで選択します。各セッションCookieを正確なIPアドレスに関連付けるウェブサイトの場合、プロキシが必要です。
この3つを持って、私たちのAPIを使ってタスクを作成します。作業員は当社の特別なブラウザプラグインを使ってあなたのウェブサイトにナビゲートし、すべてのシナリオステップを手動または自動で実行します。そしてスクリプトの最後に、クッキー、localStorage値、ブラウザフィンガープリントのようなブラウザのセッション情報をすべて取得し、あなたのアプリに返却します。残りは、このデータを使って作業員のセッションを復元し、あたかも人間のユーザーであるかのように操作を続けるだけです。さて、どれくらいすごいことでしょう?:)

AntiGateテンプレートとは?

AntiGateテンプレートは、作業員が実行すべきシナリオを定義します。テンプレートはステップで構成され、すべてが順番に実行されます。1つのステップが完了すると、作業員は次のステップに進みます。すべてのステップが完了すると、タスクが終了し、作業員セッションのスナップショットが取得され、アプリに返却します。

どんなステップがありますか。
  • 自動または手動で入力フィールドにテキストを入力します。
  • テキストの例がページに表示(または消える)されるのを待ちます。
  • CSSで定義されたDOM要素がページに表示される(またはページから消える)のを待ちます。
  • キーワードが作業員の現在のブラウザーのアドレスに表示(または消える)されるのを待ちます。
テンプレートの「description for workers」テキストフィールドには、作業員にしてほしい他のステップを記述できます。例:「Solve a captcha and press the submit button」。
例を見てみましょう。開発者センター に移動し、テスト用の無料テンプレートを作成してください。心配しないでください、何も壊すことはありません!
クリックしてテンプレートを追加します
クリックして例をロードします
手順セクションにご注意ください
デモ版をロードしました。アカウントに保存して、後で自分でテストすることができます。テンプレートプロパティの完全なリストは下記となります。
  • テンプレート名. 一度保存すると、この名前は変更できません。公開すると、テンプレートはこの名前でAPIから利用できるようになります。
  • お客様向けの説明です。 パブリックテンプレートはテンプレートディレクトリから入手できます。
  • 作業員向けの説明です。 これは当社の作業員がページの上部に見えたテキストです。
    作業員インターフェイスの例
  • 変数. これは、恒久的な値の代わりにステップで使用するために追加できる変数名のリストです。この例では、「login」と「password」という2つの変数があります。この2つは、デモのサインインフォームを埋めるためにステップ1と2で使用されます。このように、テンプレートに恒久的なログイン名とパスワードをハードコーディングする代わりに、APIを介してこれらの値を提供することができます。
    ステップ1と2で使用される変数
  • . ここでは、シナリオステップの順番を編集/変更することができます。この例では、以下のようにします:
    1.テキストフィールドにCSSセレクター「#login」が自動的に入力されます。テキストフィールドの値は、変数「login」によって定義されます。
    2.テキストフィールドにCSSセレクター「#password」が自動的に入力されます。テキストフィールドの値は、変数「password」によって定義されます。
    3.コントロールテキストがページに表示されるのを待ちます。値「Test passed with login」に永続的に設定されます。

これでテンプレートが保存され、開発者センターに表示されます。その場合、ステータスが"Sandbox"であることに注意してください。これは、自分だけが利用でき、APIでは利用できないことを意味します。そこから、作業員のように、新しく作成したテンプレートをテストしてみることができます。

テンプレートのテスト

この時点で、Chromeブラウザを使用する必要があります。プロフィールのCookieにアクセスするプラグインをインストールする必要があるため、このブラウザで新しいユーザープロフィールを作成することをお勧めします。
作業員インターフェイスの例
次に、テンプレートカードで、「テスト」ボタンを押します。
指示に従って、あなたのプラットフォーム用のプラグインをダウンロードしてください。その後、ページをリロードして反映させ、「login」と「password」変数にランダムな値を入力し、「テスト実行」ボタンを押してください。以下のような新しいページが開くはずです:

アドレスバーの近くに、ターゲットページの上部に追加されたプラグインの青いバーがあります。作業員がこれを利用して割り当てを確認し、タスクの実行を制御します。

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

同じスナップショットのデータは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」にナビゲートし、ブラウザのUser-Agentに少なくとも「fingerprint.self.navigator.userAgent」 の値を使うことです。より複雑なウェブサイトは localStorage に重要なデータを保存します。この場合、Javascriptsを実際に実行する前に、このデータをページに注入する必要があります。これらはPuppeteerのような開発環境で行うことができます。このトピックはおそらく別の記事に値するでしょう。

独自のテンプレートを作成する

テンプレートの例をロードすることなく、上記の手順に従うだけです。すべての詳細をうまく記入し、慎重に手順を追加してください。すべてのステップが順番に実行されることに注意してください。 プラグインは、現在のステップが完了するまで、次のステップの実行を許可しません。テンプレートはいつでも保存して、作業員のブラウザープラグインでテストできます。

価格設定

現時点では、1000タスクあたり2ドルという価格にします。また、タスク実行中の1秒ごとに、タスク価格の1/60のコストがかかります。たとえば、タスクのコストは0.002ドルで、作業員は20秒かけて解決しています。
最終的なコストは$ 0.00266 = 0.002 +(0.002 / 60 * 20)になります。