Menu

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

新的视频版本的AntiGate任务教程是可用的这里

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

在某个时刻,您的应用会遇到采用某种新人机验证谜题,含混的浏览器脚本或其他新技术的自动化保护“网关”。这种情况下要创建 AntiGate 任务。您要委托我们的某个工作人员创建真人浏览器会话。
  • 首先选择模板。可使用现有模板,也可自行创建模板。模板是工作人员逐步执行的一套指令。
  • 其次,提供使用模板所需的其他数据,例如要填写的输入值,输入值的 CSS 选择器,或我们应该转到的网址。我们不久就会再讨论模板。
  • 第三,设置代理服务器,这是自愿执行的步骤。如果网站将每个会话 Cookie 都与一个具体 IP 地址关联起来,则需要使用代理服务器。
有了这三点,您就可以使用我们的应用程序接口创建一个任务。Worker 使用我们的特殊浏览器插件导航到您的网站,并手动或自动执行所有场景步骤。在脚本结束时,我们会抓取他们所有的浏览器会话信息(如 cookies、本地存储值、浏览器指纹),并将其传输回您的应用程序。剩下的工作就是使用这些数据恢复我们的 Worker 会话,并像人类用户一样继续操作。现在,这有多神奇?)

什么是 AntiGate 模板?

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

模板中有哪种步骤?
  • 自动或手动填写文本输入字段。
  • 等待示例文本显示(或消失)在页面中。
  • 等待由 CSS 指定的 DOM 元素显示(或消失)在页面中。
  • 等待关键字显示(或消失)在工作人员当前浏览器 URL 地址中。
模板的“description for workers”(面向工作人员的说明)文本字段可用于说明希望工作人员执行的其他步骤。例如:“破解人机验证谜题后按提交按钮”。
我们来看一个示例。转到开发中心,然后创建免费模板进行测试。不要担心,什么都不会破坏!
点击即可添加模板
点击即可加载示例
请注意步骤部分
已加载演示示例。可将其保存到自己的帐户中,稍后再对其进行测试。我们来熟悉一下所有模板属性:
  • 模板名称.一旦保存,就无法修改。一旦发布,您的模板就会以这个名称出现在 API 中。
  • Description for customers(面向客户的说明)。我们的模板目录中有公用模板。
  • 为工人提供的说明.这就是我们的工人在页面顶部看到的文字。
    工作人员界面示例
  • 变量.这是一个变量名列表,你可以在步骤中添加使用,而不是永久值。在本例中,我们有 2 个变量:"login"(登录)和 "password"(密码)。这两个变量在步骤 1 和 2 中用于填写演示登录表单。这样,您就可以通过 API 提供这些值,而不用在模板中硬编码永久登录名和密码。
    用在步骤 1 和步骤 2 中的变量
  • 工人的步骤.在这里,您可以编辑和更改场景步骤的顺序。在我们的示例中,我们的操作如下:
    1.用 CSS 选择器“#login”自动填充文本字段。用于填充文本字段的值由变量“login”指定。
    2.用 CSS 选择器“#password”自动填充文本字段。用于填充文本字段的值由变量“password”指定。
    3.等待控制文本显示在页面中。已将其永久设置为值“Test passed with login”(已用登录名通过测试)。

现在可以保存模板,然后保存好的模板会出现在开发中心内。请注意其状态为“Sandbox”(沙盒)状态,这意味着该模板只能由您使用,不能在 API 中使用。此后可以试着测试新创建的模板,就像您是自己的工作人员那样测试。

测试模板

目前必须使用 Chrome 浏览器,我们建议在这种浏览器中创建新用户简档,还必须安装我们的插件,插件有权使用新建简档的 Cookie。
工作人员界面示例
然后请在模板卡上点击“test”(测试)按钮。
按照说明为您的平台下载插件。然后,重新加载页面使其生效,在 "登录 "和 "密码 "变量中填入一些随机值,并按下 "启动测试 "按钮。打开的新页面将如下所示:

在地址栏附近,有一个插件在目标页面顶部添加的蓝条。工作人员可通过蓝条了解各自分得的任务,还可以控制任务的执行。

另请注意,用变量填写登录名和密码字段时,登录名和密码字段处于已隐藏状态。这是有意而为。虽然工作人员可通过开发控制台无限制使用任务数据,但 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”。 你的软件需要做的是在该请求中使用 "cookies "来导航到 "url",并至少使用 "fingerprint.self.navigator.userAgent "值作为浏览器的用户代理。更复杂的网站会将重要数据存储在 localStorage 中,这是一种现代版的 cookie。在这种情况下,你需要在实际运行任何 Javascript 之前将这些数据注入页面。这可以在 Puppeteer 等开发环境中完成。这个主题可能值得另撰一篇文章。

自行创建模板

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

价格

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