Menu

如何通过 AntiGate 任务绕过人机验证

此处有新的视频版 AntiGate 任务教程。

经过多年研发之后,我们推出了通用解决方案,帮助您的机器人通过人类建造的人机验证大门。我们称之为“AntiGate”,而这些都是我们工作人员用于执行具体任务的方案模板。

在某个时刻,您的应用会遇到采用某种新人机验证谜题,含混的浏览器脚本或其他新技术的自动化保护“网关”。这种情况下要创建 AntiGate 任务。您要委托我们的某个工作人员创建真人浏览器会话。
  • 首先选择模板。可使用现有模板,也可自行创建模板。模板是工作人员逐步执行的一套指令。
  • 其次,提供使用模板所需的其他数据,例如要填写的输入值,输入值的 CSS 选择器,或我们应该转到的网址。我们不久就会再讨论模板。
  • 第三,设置代理服务器,这是自愿执行的步骤。如果网站将每个会话 Cookie 都与一个具体 IP 地址关联起来,则需要使用代理服务器。
满足下列三项要求,即可通过我们的 API 创建任务。工作人员通过我们的专用浏览器插件转到您的网站,然后手动或自动执行所有方案步骤。在脚本末尾,我们会获取其所有浏览器会话信息,如 Cookie、localStorage 值、浏览器指纹,然后将这些信息送回您的应用。最后只须用这些数据恢复我们工作人员的会话并继续操作,就像是真人用户在操作。这是不是很神奇? :)

什么是 AntiGate 模板?

AntiGate 模板用于指定我们工作人员将会执行的具体方案。模板中有步骤,所有步骤都会依次执行。一个步骤完成后,工作人员会继续执行下一步骤。所有步骤都执行完毕后,任务即告完成,然后会拍摄工作人员会话快照,并将其送回您的应用。

模板中有几哪种步骤?
  • 自动或手动填写文本输入栏。
  • 等待示例文本显示(或消失)在页面中。
  • 等待由 CSS 指定的 DOM 元素显示(或消失)在页面中。
  • 等待关键字显示(或消失)在工作人员当前浏览器 URL 地址中。
模板的“面向工作人员的说明”文本字段可用于说明希望工作人员执行的其他步骤。例如:“破解人机验证谜题后按提交按钮”。
我们来看一个示例。转到开发中心,然后创建测试用的免费模板。不要担心,什么都不会破坏!
点击即可添加模板
点击即可加载示例
请注意步骤部分
已加载演示示例。可将其保存到自己的账户中,稍后再对其进行测试。我们来熟悉一下所有模板属性:
  • 模板名称。保存完毕后不能修改模板名称。发布模板后,可通过此名称在 API 中使用模板。
  • 面向客户的说明。我们的模板目录中有公用模板。
  • 面向工作人员的说明。这是我们工作人员可在页面顶部看到的文本。
    工作人员界面示例
  • 变量。这是可添加的变量名称的清单,用于在步骤中替代常设值。此例中有两个变量,即“login”和“password”。这两个变量用于在步骤 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 谜题时按“Sign In”(登录)按钮。会通过模板“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 任务后会返回破解结果,其中有“Cookie”、“localStorage”、“fingerprint”和“url”。 您的软件必须执行的操作是用“Cookie”转到此请求中的“url”,并且至少将“fingerprint.self.navigator.userAgent”值用作浏览器的用户代理值。比较复杂的网站可将重要数据存入 localStorage,这是一种新版 Cookie。这种情况下,必须先将这些数据添加到页面中,然后再实际运行 JavaScript。可在 Puppeteer 之类的开发环境中执行上述操作。对于此主题,很可能应该再写一篇文章。

自行创建模板

只须按上列步骤操作,但不加载示例模板。要准确填写所有详细信息,并仔细添加步骤。请注意,所有步骤都依次执行。当前步骤执行完毕之前,不可以通过插件执行下一步。随时均可保存模板,并用工作人员的浏览器插件对其进行测试。

价格

目前我们的定价是每 1000 项任务 2 美元。此外,每一秒任务执行时间的费用都是任务价格的 1/60。例如,任务费用是 0.002 美元,工作人员破解耗时 20 秒。
则最终费用会是 0.00266 美元 = 0.002 + (0.002/60 * 20)。