hCaptcha 识别工具:通过本地 API 识别并绕过 hCaptcha
交出 sitekey 和页面地址,拿回表单会接受的 token。CapSkip 在你自己运行的硬件上处理 hCaptcha 复选框、隐形小组件和 Enterprise 密钥,不按 token 计费,也没有别人的任务排在你前面。
- 复选框、隐形与 Enterprise
- Token、respKey 与 User-Agent
- 统一月费套餐
注册表单、登录页、结账页和抢票队列,常常在你的脚本和提交按钮之间放上一道 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 识别工具支持的三种请求格式
# 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
-
在你的机器上安装 CapSkip
把应用安装在负责处理 hCaptcha 任务的机器上,可以是家用电脑,也可以是租用的 Windows VPS,并保持应用开启。 下载 CapSkip
-
开始试用或选择套餐
套餐按机器定价,从不按 token 计费。想先测试自己的目标网站?免费试用会通过电子邮件发送,并附带独立的登录信息。 比较各套餐
-
提交 sitekey 和页面 URL
调用 in.php 或 createTask,轮询结果,然后使用回复中的 User-Agent 将 token 随表单一起提交。 打开 hCaptcha 文档
本地识别 hCaptcha 与逐个购买 token 的对比
两种方式最终都能拿到有效的 token。区别在于谁能看到你的目标网站、谁来回答图片轮次,以及每多一个 token 要花多少钱。
| 功能 | CapSkip | 按次服务 |
|---|---|---|
| 如何付费 | 每台机器每月 35 美元,token 数量不限 | 每 1,000 次 hCaptcha 识别约 3 美元(仍提供的服务) |
| 谁来回答图片轮次 | 应用自带的模型,在你的机器上运行 | 远程识别方,往往是人工打码 |
| Enterprise 与 rqdata | in.php 和 createTask 均支持 | 通常是单独的、更贵的任务类型 |
| 重试与过期 token | 已包含;失败的尝试会自动为你重试 | 每个新 token 都要再次计费 |
| 现有集成 | 2Captcha in.php 或 createTask HCaptchaTask,无需改动 | 绑定在该服务商的端点和密钥上 |
| 目标网站 | 绝不离开你的网络 | 每个任务都被第三方记录 |
想先试用一下?
开始 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 任务需要哪些字段?
识别完成后会返回什么?
它支持 hCaptcha Enterprise 吗?
哪些现有客户端可以与它通信?
扩展、SDK 或 MCP 服务器支持 hCaptcha 吗?
一次识别需要多长时间?
识别 hCaptcha 必须使用代理吗?
网站为什么会拒绝 CapSkip 返回的 token?
hCaptcha 的隐形模式需要做什么不同的处理吗?
一台 CapSkip 机器能同时处理多个 hCaptcha 任务吗?
用 CapSkip 识别 hCaptcha 要多少钱?
通过 hCaptcha,无需按 token 付费
把你的 hCaptcha 流量指向你自己安装的 CapSkip,从此不必再数 token。复选框、隐形和 Enterprise 小组件,包括重试在内,都只需一笔固定的月费。
