MTCaptcha

MTCaptcha 验证码识别工具:绕过 MTCaptcha,获取已验证的 token

发送 MTPublic sitekey 和页面地址,CapSkip 就会交回一个可直接用于表单的已验证 MTCaptcha token。文字挑战和隐形小组件都在你自己运行的电脑或 VPS 上完成识别,通常约 3 秒,也没有计费表在统计 token 数量。

Windows x64·本地运行,验证码不会离开你的电脑
  • 文字图片与隐形模式
  • v1 token,可直接填入表单
  • 统一月费套餐
每月可获取的 MTCaptcha token40,000
40.0k250.0k
别家按次收费,每 1,000 次约 $1.45$58.00
CapSkip Bronze,统一定价$35.00
$23.00留在你的口袋里按当前用量,每月如此

MTCaptcha 用一行扭曲的短字母来保护登录、注册和结账表单,或者采用隐形验证,只有在访问看起来可疑时才弹出图片。CapSkip 是一款 MTCaptcha 识别工具,为你的脚本扫清这道关卡:它返回小组件本应写入表单的已验证 token,你的自动化流程就能像真人一样提交页面。整个过程都在你自己的 Windows 机器上完成,无论是台式电脑、VPS 还是独立服务器。

一个任务所需的东西很少:以 MTPublic- 开头的 sitekey、包含小组件的页面地址,以及页面设置了的 action 名称。你完全不需要亲自打开小组件。CapSkip 会自行请求并解答挑战,然后返回一个以 v1( 开头的 token,可直接填入 mtcaptcha-verifiedtoken 字段。

按次计费的服务每 1,000 个 MTCaptcha token 收费约 $1.45,而 token 只能用一次,所以你提交的每个表单都要再消耗一个。使用 CapSkip,你只需为每台运行它的电脑支付一份月费,35 美元起,token 数量从不计入账单。基于 in.php 和 res.php 编写的脚本、类型为 MTCaptchaTask 的 createTask 任务,以及 type 18 的 DeathByCaptcha 上传,只要指向 CapSkip 就能继续正常工作。

每个 token 请立即使用。 MTCaptcha token 只能使用一次,而且仅在几分钟内有效,所以请在提交表单前一刻再请求,切勿提前囤积。 查看 MTCaptcha API 参考文档

MTCaptcha 识别工具支持哪些内容

可见与隐形小组件

带文字图片的标准小组件,以及在怀疑访客之前一直隐藏的低干扰模式,返回的都是同一种 token,因此一套集成就能覆盖两种配置。

表单认可的 token

返回的是 MTCaptcha 签发的已验证 token,以 v1( 开头。把它放进 mtcaptcha-verifiedtoken 字段,或页面读取它的任何位置,然后立即提交表单。

每个 token 约 3 秒

一个典型的 MTCaptcha 任务约 3 秒即可完成。你的任务不会在共享队列里排队,速度只取决于你的机器,以及你允许同时运行的 MTCaptcha 任务数量。

错误的 sitekey 立即标出

MTCaptcha 不认识的 sitekey,或不允许在你指定页面上使用的 sitekey,会返回专门的错误,而不是无休止地重试,因此配置里的笔误在第一个任务就能看出来。

支持三种请求格式

in.php 上的 method=mt_captcha、使用 MTCaptchaTask 或 MtCaptchaTaskProxyless 的 createTask,以及 DeathByCaptcha 的 type 18 都可以使用,每个响应都按调用方的库所期望的格式返回。

每次表单提交都包含在内

token 只能用一次,所以繁忙的注册或登录流程消耗得很快。无论你提交多少表单,每一个都包含在月度套餐内。

将 MTCaptcha 任务发送到 CapSkip 的三种方式

Python
import time
import requests

API = "http://127.0.0.1:8080"
KEY = "YOUR_API_KEY"

# The sitekey comes from the page's mtcaptchaConfig object.
job = requests.post(API + "/in.php", data={
    "key": KEY,
    "method": "mt_captcha",
    "sitekey": "MTPublic-KzqLY1cKH",
    "pageurl": "https://www.example.com/login",
    "json": 1,
}).json()

while True:
    time.sleep(3)
    res = requests.get(API + "/res.php", params={
        "key": KEY, "action": "get", "id": job["request"], "json": 1,
    }).json()
    if res["request"] != "CAPCHA_NOT_READY":
        break
if res["status"] != 1:
    raise RuntimeError(res["request"])

# The token is single-use and short-lived: submit the form right away.
requests.post("https://www.example.com/login", data={
    "username": "alice",
    "password": "YOUR_PASSWORD",
    "mtcaptcha-verifiedtoken": res["request"],
})

MTCaptcha 只需普通 HTTP 即可:把 sitekey 和页面地址提交到 in.php,轮询 res.php 获取 token,然后在 mtcaptcha-verifiedtoken 字段中随表单一起发送。

旧版 in.php 和 res.php

提交 method=mt_captcha 以及 sitekey 和页面 URL,页面设置了 action 的话一并加上,然后轮询 res.php,在 OK| 之后读取 v1 token。

使用 MTCaptchaTask 的 createTask

JSON 客户端发送 MTCaptchaTask,任务不带代理时发送 MtCaptchaTaskProxyless,低干扰小组件加上 isInvisible,然后从 getTaskResult 返回的 solution 中读取 token。

DeathByCaptcha 类型 18

为 DeathByCaptcha 编写的工具继续带着 mtcaptcha_params 上传 type 18,结果会把 token 放在 text 字段中,而这正是这些工具本来就读取的字段。

三步拿到你的第一个 MTCaptcha token

  1. 在你的脚本旁设置好 CapSkip

    把它安装在提交表单的那台 Windows 机器上。MTCaptcha 任务不涉及浏览器,所以普通硬件就足以应付。 下载 CapSkip

  2. 开始试用或选择套餐

    免费试用让你在付费前先用自己的目标测试 MTCaptcha。准备好后,再选择要授权的机器数量。 查看套餐

  3. 发送 sitekey,提交表单

    提交 MTPublic sitekey 和页面 URL,等待约 3 秒,提交时把返回的 token 放进 mtcaptcha-verifiedtoken。 打开 MTCaptcha 文档

统一定价的 MTCaptcha 识别与按 token 付费对比

两种方式最终都会在你的表单里得到一个 v1 token。区别在于每个 token 的成本,以及谁会知道你在自动化哪些网站。

功能CapSkip按 token 计费的服务
每月账单每台机器一个价格,35 美元起,token 无限量每 1,000 个 MTCaptcha token 约 $1.45
小组件模式文字挑战和隐形小组件通过同一个请求处理并非每个服务都支持隐形模式
典型识别时间约 3 秒,你的任务前面没有队列取决于服务商当时的负载
每个表单一个一次性 token表单需要多少新 token 都可以,价格不变你提交的每个表单都要再收一次费
您现有的客户端你的 in.php、createTask 或 type 18 调用,原样不变通常绑定该厂商自己的 SDK 和任务名称
谁能看到你的目标网站没有人:sitekey 和页面都留在你的机器上第三方会记录你发送的每个 sitekey 和页面

价格

不再按次付费

选择你的授权

青铜授权

$35/ 月

订阅青铜授权

授权即时激活

按月计费,可随时在账户中取消。

功能相同,机器越多,吞吐量越大。

每台机器的识别速度都受限于它自己的 CPU 和内存。机器越多,同时运行的线程就越多:白银可同时识别两倍数量的验证码,黄金则是三倍。

  • 无限解决,无每日上限
  • 无限线程,速度随硬件提升
  • 90% 至 100% 的识别准确率
  • 可直接替代主流打码服务的 API
  • 几乎兼容任何工具,无需编写代码
  • REST API、SDK 和浏览器扩展
  • 出现新的验证码类型时免费训练
  • 在你自己的机器上运行,数据不外传

上面展示的每一种验证码类型,每个授权都支持。 查看支持范围

想先试用一下?

开始 3 天免费试用,在你自己的目标上识别 500 个任意类型的验证码。

开始免费试用

MTCaptcha 的工作原理,以及如何通过 API 绕过它

网站通过加载一个小脚本并为其提供以 MTPublic- 开头的 sitekey 来添加 MTCaptcha。标准形式下,它会显示一张由四到七个扭曲字符组成的图片,部分字符被一个彩色椭圆遮挡,图片下方是输入框,以及用于音频和换一张图片的按钮。答案不区分大小写。想要减少阻碍的网站会开启隐形模式,让大多数访客直接通过,只把图片展示给它怀疑的访客。

无论网站使用哪种模式,表单需要的结果都一样:一个以 v1( 开头的已验证 token,由小组件放进名为 mtcaptcha-verifiedtoken 的隐藏字段。表单到达后,网站服务器会向 MTCaptcha 询问该 token 是否真实。因此,MTCaptcha 绕过要产出的是 token,而不是某张图片的答案,而这正是 CapSkip 返回的东西。

token 的两个特性决定了任何自动化的做法。它只能用一次,所以每次提交表单都需要一个新的;它的寿命很短,最多几分钟有效,所以请在提交表单前一刻再请求,而不是提前囤积。它还与 sitekey 以及该 sitekey 注册的域名绑定,所以你发送的页面地址必须是真实的。

少量测试可以直接用你自己的网络连接。大批量识别 MTCaptcha 时,请把任务分散到一组代理上,可以在应用里设置代理列表,也可以每个任务附带一个代理,因为每次识别都会从 MTCaptcha 获取新的挑战,而来自单一地址的持续请求流,恰恰是限速机制要拖慢的对象。

相关指南: MTCaptcha API 参考文档 · Image CAPTCHA solver · 网络爬虫验证码识别

MTCaptcha 任务会返回什么?
一个以 v1( 开头的已验证 MTCaptcha token。旧版 res.php 调用会在 OK| 之后给出它,使用 json=1 时则放在 request 字段中。createTask 任务会把它作为 solution 对象中的 token 返回,DeathByCaptcha type 18 则在 text 字段中返回。
在哪里找到 MTCaptcha 的 sitekey?
在页面源代码中查找 mtcaptchaConfig 对象:其中的 sitekey 值以 MTPublic- 开头。如果页面在那里还设置了 action,也一并发送。如果小组件已经显示在屏幕上,同一个 sitekey 也会出现在其 service.mtcaptcha.com 上的 iframe 地址中。
CapSkip 能处理隐形 MTCaptcha 吗?
能。隐形(低干扰)小组件和可见的文字挑战通过同一个请求处理,返回的也是同一种 token。使用 createTask 时,你可以用 isInvisible 标记任务;如果 MTCaptcha 最终判定需要图片,CapSkip 会把它解答。
MTCaptcha token 的有效期有多长?
只有几分钟,而且只能用一次。请在提交表单前一刻再请求,拿到后立即使用。在队列里放过或已经用过的 token 会被网站拒绝,所以每次提交都请请求一个新的。
识别 MTCaptcha 需要代理吗?
刚开始不需要:MTCaptcha 可以用你自己的网络连接识别,测试和偶尔提交表单都没问题。如果需要稳定的大批量,请把任务分散到多个代理上,可以在设置中加载代理列表,也可以附加在每个请求上,这样就不会有单一地址向 MTCaptcha 发送足以被限速的请求量。
MTCaptcha 识别有多快?
通常约 3 秒。你的任务从不排在别人后面,所以速度取决于运行 CapSkip 的机器,以及你允许并行的 MTCaptcha 任务数量,而这个上限由你自己调高或调低。
如果 sitekey 或页面地址错了怎么办?
CapSkip 会停下来告诉你,而不是无休止地重试。MTCaptcha 不认识的 sitekey 会返回 ERROR_RECAPTCHA_INVALID_SITEKEY,不允许在你发送的页面域名上使用的 sitekey 会返回 ERROR_RECAPTCHA_INVALID_DOMAIN。修正任务后重新发送即可。
我现有的 MTCaptcha 代码能配合 CapSkip 使用吗?
通常无需改动。CapSkip 接受带 method=mt_captcha 的 in.php、使用 MTCaptchaTask 或 MtCaptchaTaskProxyless 的 createTask(以及 CapSolver 使用的 MtCaptchaTaskProxyLess 写法),还有 DeathByCaptcha type 18。在 CapSkip 设置中选择同一个服务,你的代码就能原样继续运行,只是现在在你自己的电脑上完成识别。
识别更多 MTCaptcha 会更贵吗?
不会。你按机器授权,而不是按 token 付费:Bronze 每月 35 美元支持一台电脑,此外没有任何按量计费。每次尝试都要一个新 token 的注册流程,和每天早上只需要一个 token 的脚本,收费完全一样。

绕过 MTCaptcha,无需按 token 付费

把你的表单自动化指向 CapSkip,页面一要 token,它就去获取 MTCaptcha token。可见的图片、隐形的验证以及每一个重复的 token,都包含在同一份月费里。