hCaptcha

hCaptcha 识别工具:通过本地 API 识别并绕过 hCaptcha

交出 sitekey 和页面地址,拿回表单会接受的 token。CapSkip 在你自己运行的硬件上处理 hCaptcha 复选框、隐形小组件和 Enterprise 密钥,不按 token 计费,也没有别人的任务排在你前面。

Windows x64·本地运行,验证码不会离开你的电脑
  • 复选框、隐形与 Enterprise
  • Token、respKey 与 User-Agent
  • 统一月费套餐
每月 hCaptcha token 数量40,000
40.0k250.0k
别家按次收费,每 1,000 次约 $2.99$119.60
CapSkip Bronze,统一定价$35.00
$84.60留在你的口袋里按当前用量,每月如此

注册表单、登录页、结账页和抢票队列,常常在你的脚本和提交按钮之间放上一道 hCaptcha。这个小组件要你打勾,有时还要答一轮图片题,然后才把 token 写进表单。CapSkip 就是替你完成这一步的 hCaptcha 识别工具:它针对你指定的 sitekey 和页面通过小组件,并返回 token,让你的代码原本要发出的请求顺利通过。

识别在 CapSkip 应用内运行,可以是你的工作站、VPS 或独立服务器。图片轮次由应用自带的模型作答,而不是雇人点击,你目标网站的任何信息都不会离开你的网络。一次典型识别耗时 10 到 30 秒。

仍在出售 hCaptcha 的按次服务,每千个 token 收费约 3 美元,而几家最知名的服务已经不再提供它。CapSkip 按每台机器每月 35 美元收费,不按次计费,所以每次尝试都要新 token 的表单,成本和只要一次的表单一样。已经为 2Captcha 的 in.php 或使用 HCaptchaTask 的 createTask 写好的脚本,只需指向 CapSkip,请求代码保持不变。

一个 token,一次表单提交。 hCaptcha token 只能使用一次,约两分钟后过期,所以请在提交前一刻再请求,并使用随 token 一起返回的 User-Agent 发送提交请求。 阅读 hCaptcha API 参考

hCaptcha 识别工具能处理什么

三种小组件样式

可见的复选框、在表单提交时运行的隐形小组件,以及 hCaptcha Enterprise,全部走同一个方法。用 invisible=1 标记隐形小组件即可,其他一切不变。

Enterprise 网站的 rqdata

有些 Enterprise 网站会在小组件运行前交给它一个一次性的 rqdata 值。把它作为 data 传入,或在 createTask 中放进 enterprisePayload,CapSkip 就会带着它识别。每个任务都要获取新的值,因为它转眼就会过期。

Token、respKey 与 User-Agent

每个结果都包含用于 h-captcha-response 的 token、hCaptcha 随之签发的 respKey,以及获取该 token 时使用的 User-Agent,让你的表单提交呈现同一个浏览器身份。

图片轮次在本地作答

当 hCaptcha 弹出图片网格、拖放任务或闭合图形问题时,应用自带的模型会在你的硬件上作答。挑战的截图不会发送给任何人。

用你的代理,或不用代理

代理是可选的。大批量使用时,可以给应用一份代理列表;当 token 必须来自特定网络时,也可以在每个任务中附带一个代理。任务中的代理始终优先于列表。

新 token 不额外收费

一个 hCaptcha token 只能用于一次提交,有效期约两分钟。每次尝试、每次重试、每创建一个账号都请求新的 token:月度套餐不计次数。

hCaptcha 识别工具支持的三种请求格式

Python
# pip install capskip
import requests
from capskip import CapSkip

solver = CapSkip(host="127.0.0.1", port=8080)   # the machine running CapSkip

result = solver.hcaptcha(
    sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",   # data-sitekey of the widget
    url="https://www.example.com/signup",            # the page the widget is on
)

# One token per form post, sent under the browser identity that earned it.
requests.post(
    "https://www.example.com/signup",
    data={"email": "[email protected]", "h-captcha-response": result["token"]},
    headers={"User-Agent": result["userAgent"]},
)

使用 CapSkip Python SDK 只需一次调用:pip install capskip,把 sitekey 和页面地址传给 hcaptcha(),返回结果中包含用于 h-captcha-response 的 token,以及提交表单时要使用的 User-Agent。

2Captcha 风格 in.php

POST method=hcaptcha 并带上 sitekey 和 pageurl,用返回的 id 轮询 res.php,然后读取 OK| 之后的 token,或以 JSON 形式连同 respKey 和 useragent 一起读取。

使用 HCaptchaTask 的 createTask

JSON 客户端把 HCaptchaTask、HCaptchaTaskProxyless 或对应的 Enterprise 任务类型发送到 /createTask,再像使用 Anti-Captcha 或 CapSolver 时一样从 /getTaskResult 读取结果。

任何 HTTP 客户端

如果你不想使用 SDK,用你爬虫所用的任何语言发两个 HTTP 请求,就是全部集成工作。端点运行在你自己的机器上,所以除非你开启验证,否则无需管理账户密钥。

看 hCaptcha 小组件顺利通过

我们的 hCaptcha 测试页面托管了一个真实的复选框,并接入了服务器端 siteverify 校验。把 CapSkip 指向它,将 token 粘贴到表单中,即可看到服务器收到的校验结果。

三步拿到可用的 hCaptcha token

  1. 在你的机器上安装 CapSkip

    把应用安装在负责处理 hCaptcha 任务的机器上,可以是家用电脑,也可以是租用的 Windows VPS,并保持应用开启。 下载 CapSkip

  2. 开始试用或选择套餐

    套餐按机器定价,从不按 token 计费。想先测试自己的目标网站?免费试用会通过电子邮件发送,并附带独立的登录信息。 比较各套餐

  3. 提交 sitekey 和页面 URL

    调用 in.php 或 createTask,轮询结果,然后使用回复中的 User-Agent 将 token 随表单一起提交。 打开 hCaptcha 文档

本地识别 hCaptcha 与逐个购买 token 的对比

两种方式最终都能拿到有效的 token。区别在于谁能看到你的目标网站、谁来回答图片轮次,以及每多一个 token 要花多少钱。

功能CapSkip按次服务
如何付费每台机器每月 35 美元,token 数量不限每 1,000 次 hCaptcha 识别约 3 美元(仍提供的服务)
谁来回答图片轮次应用自带的模型,在你的机器上运行远程识别方,往往是人工打码
Enterprise 与 rqdatain.php 和 createTask 均支持通常是单独的、更贵的任务类型
重试与过期 token已包含;失败的尝试会自动为你重试每个新 token 都要再次计费
现有集成2Captcha in.php 或 createTask HCaptchaTask,无需改动绑定在该服务商的端点和密钥上
目标网站绝不离开你的网络每个任务都被第三方记录

价格

不再按次付费

选择你的授权

青铜授权

$35/ 月

订阅青铜授权

授权即时激活

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

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

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

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

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

想先试用一下?

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

开始免费试用

hCaptcha 如何运作,以及 API 识别工具如何为你拿到 token

hCaptcha 是一种验证码服务,网站以小型 iframe 的形式嵌入它,通常就是那个“我是真人”复选框;在许多网站上,它是注重隐私的 reCAPTCHA 替代品。访客勾选后,hCaptcha 会综合评估浏览器、网络以及它观察到的行为。它信任的访客会立即通过。它怀疑的访客会收到一道挑战:从一组图片中挑选、把某个物体拖到指定位置,或者回答哪些形状构成闭合图形。通过后,一个很长的 token 会写入名为 h-captcha-response 的隐藏字段,网站会先用 hCaptcha 的 siteverify 端点校验该 token,再接受表单。

每个小组件都由一个 sitekey 标识,它是一个公开的 UUID,在页面中以 data-sitekey 的形式写在 h-captcha div 上,或者在脚本构建小组件时传给 hcaptcha.render()。对于普通小组件,hCaptcha 识别工具只需要这两个值。隐形小组件标记为 data-size="invisible",它在表单提交时运行,而不是在勾选复选框时运行;对它请发送 invisible=1。Enterprise 客户还可以通过 hcaptcha.setData() 附加 rqdata,这是一个与单次挑战绑定的短时效值,必须随任务一起发送。

token 只能使用一次,约 120 秒后失效,所以请在提交前一刻再请求,绝不要缓存。token 会连同获取它时的上下文一起校验,这就是 CapSkip 在每个回复中都注明 User-Agent 的原因:请带着这个请求头发送表单。随之返回的 respKey 只有少数网站会读取,大多数网站会忽略。如果某个网站一直拒绝 token,请检查 sitekey 是否与页面 URL 匹配,以及你是否正从 hCaptcha 已经不再信任的地址提交。

大批量使用时,网络和浏览器同样重要。hCaptcha 会对地址限速并打分,所以来自同一个 IP 的持续识别流,正是它专门要识别的模式。CapSkip 识别 hCaptcha 时不强制使用代理,但每天超过几百个 token 后,一组住宅代理或 ISP 代理能让通过率保持稳定。在应用中一次性加载代理池,或者当 token 必须与表单提交共用同一个出口 IP 时,在每个任务中附带一个代理。

浏览器自动化也是同样的方式。在 Selenium、Playwright 或 Puppeteer 中,从页面读取 data-sitekey,向 CapSkip 请求 token,然后在点击提交之前把它写入隐藏的 h-captcha-response 文本框(以及 g-recaptcha-response,hCaptcha 出于兼容性也会填写它)。注册了 data-callback 的网站会期望该函数带着 token 被触发,所以请自己用这个值调用它,就像小组件在真正通过后那样。由于 token 是在 CapSkip 自己的浏览器中获取的,你的自动化程序永远不需要渲染挑战,而 hCaptcha 会怀疑的无头会话也永远不会遇到挑战。

相关指南: hCaptcha API 参考 · hCaptcha 演示页面 · reCAPTCHA v2 识别

hCaptcha 任务需要哪些字段?
小组件的 sitekey,以及它所在页面的完整 URL。隐形小组件加上 invisible=1;Enterprise 网站设置了 rqdata 时,用 data 传入该值;代理可选。其他一切,包括获取 token 的浏览器,都由应用处理。
识别完成后会返回什么?
token,可直接填入 h-captcha-response 字段。使用 json=1 时,res.php 还会返回 respKey 和 useragent;不使用时,token 跟在 OK| 之后,User-Agent 则放在 X-HCaptcha-User-Agent 响应头中。getTaskResult 会在其 solution 对象中返回相同的值,token 同时放在 gRecaptchaResponse 和 token 下。
它支持 hCaptcha Enterprise 吗?
支持。Enterprise 小组件通过同一个方法识别,createTask 还接受 HCaptchaEnterpriseTask 和 HCaptchaEnterpriseTaskProxyless。当网站向小组件传入 rqdata 时,请随任务一起发送,并且每次都获取新值,因为它只为单次挑战签发。
哪些现有客户端可以与它通信?
任何使用 method=hcaptcha 调用 2Captcha 或 RuCaptcha 的 in.php 的客户端,以及任何以 HCaptchaTask 或 HCaptchaTaskProxyless 发送 createTask 的客户端,例如 Anti-Captcha、CapMonster Cloud、CapSolver 和 SolveCaptcha 的客户端。DeathByCaptcha、NextCaptcha 和 EzCaptcha 仿真会拒绝 hCaptcha,因此请把这些任务切换到上述格式之一。
扩展、SDK 或 MCP 服务器支持 hCaptcha 吗?
是的。CapSkip 浏览器扩展、CapSkip SDK 软件包和 MCP 服务器都支持 hCaptcha,如上方的 Python SDK 示例所示,任何语言的普通 HTTP 调用也同样可用。
一次识别需要多长时间?
通常 10 到 30 秒,取决于 hCaptcha 是否要求图片轮次以及轮次多少。每 5 秒轮询一次 res.php。失败的尝试会在任务报告结果之前于应用内自动重试,而且失败的尝试不会计入你的授权。
识别 hCaptcha 必须使用代理吗?
起步时不需要。一个地址就能应付测试和偶尔的识别。大批量使用时,hCaptcha 会同时给网络和浏览器打分,所以请在应用的 hCaptcha 设置中添加代理;当识别和表单提交必须从同一个 IP 发出时,也可以为每个任务附带一个代理。
网站为什么会拒绝 CapSkip 返回的 token?
常见原因有:token 已过期(有效期约两分钟)、token 被使用了两次、sitekey 属于另一个页面,或者表单提交的 User-Agent 与 CapSkip 报告的不一致。ERROR_RECAPTCHA_INVALID_SITEKEY 表示 hCaptcha 本身拒绝了该页面 URL 对应的 sitekey。
hCaptcha 的隐形模式需要做什么不同的处理吗?
只需加上标记。在 in.php 上发送 invisible=1,或在 createTask 上将 isInvisible 设为 true,sitekey 和页面地址保持不变。在页面上,隐形小组件通常在表单提交时通过回调运行,所以把 token 放进 h-captcha-response 之后,请调用网站的回调,或按网站自身脚本的方式提交表单。
一台 CapSkip 机器能同时处理多个 hCaptcha 任务吗?
可以。并行运行的 hCaptcha 识别数量是应用中的一项设置,受内存和 CPU 限制,而不是受账户配额限制。每个任务独立识别,因此 token 绝不会混用;加载代理列表后,任务会分散到你的各个地址上。
用 CapSkip 识别 hCaptcha 要多少钱?
不按 token 收费。你为每台运行应用的机器付费,青铜授权单台每月 35 美元,所有 hCaptcha、重试和 Enterprise 小组件都包含在内。免费试用让你在花钱之前先证明自己的目标网站可行。

通过 hCaptcha,无需按 token 付费

把你的 hCaptcha 流量指向你自己安装的 CapSkip,从此不必再数 token。复选框、隐形和 Enterprise 小组件,包括重试在内,都只需一笔固定的月费。