Cloudflare Turnstile
小部件- 你在哪里看到它
- 页面或表单内的小部件
- 它返回什么
cf-turnstile-response中的 token- CapMonster 页面
- Cloudflare Turnstile 求解器
cf_clearance cookie,因此您的自动化无需手动步骤即可继续。最后更新:
Cloudflare Challenge 和 Turnstile 小部件可能看起来相同。挑战并不总是一个单独的“请稍等……”页面:它可以设计样式、嵌入到网站中或使其看起来像常规的 Turnstile 小部件,因此您无法通过外观区分它们。
cf-turnstile-response 中的 token__cf_chl_f_tk= 的 challenge-form 标识cf_clearance cookie如果存在这些标志,则它是 Cloudflare Challenge:使用此页面上的 Cloudflare Challenge 求解器,该求解器返回 token 或 cf_clearance cookie。否则,请使用 Cloudflare Turnstile 求解器。
该表列出了四种 Cloudflare Challenge 求解服务的每 1000 次求解的价格、平均求解时间和求解成功率。
| 参数 | CapMonster Cloud | 2验证码 | 反验证码 | 最佳验证码解算器 |
|---|---|---|---|---|
每1000个的价格解决 | $ 1.30 | $1.45 | $2.00 | $1.80 |
平均求解时间 | 12 – 14 s | 14 – 18 s | 18 – 22 s | 22 – 30 s |
解决成功率 | 99% | 97% | 95% | 80% |
提供商列出的 Cloudflare Turnstile 价格; Cloudflare Challenge未单独列出。
2Captcha、Anti-Captcha 和 BestCaptchaSolver 是其各自所有者的商标。 CapMonster Cloud 不隶属于这些实体。绩效指标基于 2026 年 8 月 26 日进行的内部基准测试。定价比较基于截至 30.09.2026 的公开数据。
99%成功通过。立即测试您自己的目标站点的稳定性。我们不保证 100% 的成功率:CAPTCHA 类型和目标站点配置可能随时更改。
$0.10
新用户可获得 0.10 美元的测试余额来尝试 CapMonster Cloud。
1. 在 CapMonster Cloud 注册。
2. 通过在线聊天或 support@capmonster.cloud 联系支持,并提供与账户绑定的邮箱。
在您拥有或允许测试的页面上使用 Playwright、Puppeteer 或 Selenium 在 CI/CD 中运行注册、结账和表单流程。
检查 Cloudflare Challenge 后面的页面在发布和规则更改后是否保持可访问。
从受 Cloudflare Challenge 保护的开放页面收集公开数据。
支持在加载前显示验证页面的网站上的自动化辅助工作流程。
当工作流程遇到挑战时,让代理通过 MCP 请求 token 或 cf_clearance cookie。
使用 CapMonster Cloud 获取公开数据以及您拥有或有权测试的站点。未经许可,禁止通过登录或付费专区收集第三方数据。
Cloudflare 提供三种类型的质询页面:JS Challenge、Managed Challenge 和 Interactive Challenge。是否显示挑战由WAF规则或Bot Management决定。 CapMonster Cloud 涵盖以下三种挑战类型; WAF / Bot Management 是更广泛的产品,单独列出。
“5秒挑战”
非交互式插页式测试:浏览器运行 JavaScript,Cloudflare 在页面加载之前对结果进行评分。不需要用户 action。
cf_clearance cookie(默认)包括。 Under Attack Mode
使用 Cloudflare Managed Challenge,Cloudflare 从请求特征和浏览器信号中动态选择检查。 Under Attack Mode 使用 Managed Challenge。
cf_clearance cookie(默认)间隙页面上的小部件
Interactive Challenge 页面需要访问者与挑战互动才能通过。
cf_clearance cookie(默认)规则和评分层决定何时提供 Cloudflare 机器人挑战。 Cloudflare 使用检测引擎计算此决策,包括:
比三种挑战类型更广泛,而不是它们的同义词。
Sources: 机器人分数 · 机器人检测引擎 · JavaScript 检测
浏览器请求受保护的页面。 Cloudflare Bot Management 通过 TLS 指纹、IP 信誉和行为信号对请求进行评分。
启发式、JS 检测和机器学习引擎产生从 1 到 99 的机器人分数,WAF 规则决定是否接受挑战。
如果请求看起来可疑,Cloudflare 将返回“Just a moment...”页面,状态代码为 403,并运行 JS Challenge、Managed Challenge 或 Interactive Challenge。
检查通过后,Cloudflare 会发出与访问者和设备绑定的 cf_clearance cookie,并在有限时间内有效。
浏览器加载带有 cookie 的原始页面。 Cloudflare 不断重新评估会话行为 (Precursor clearance),并可能面临新的挑战。
cf_clearance 是访客通过 Cloudflare Challenge 后发出的 cookie Cloudflare。浏览器将其与以下请求一起发送到受保护的站点,并且页面将打开,而无需重复询问。
根据Cloudflare的文档,cookie的属性:
绑定到访问者和发给的设备。
有效期有限(默认30分钟,站点设置为挑战通道):长时间运行的脚本一旦过期必须再次通过检查。
其本身并不是保证:Precursor clearance 不断重新评估会话行为,即使 cookie 尚未过期,也可能会触发重复质询。
访问权限被重置:cookie 与访问者及其发送到的设备相关联
cookie 停止工作;脚本必须再次通过检查
Cloudflare 可以降低或重置许可级别,并在流量看起来可疑时进行重复质询
TurnstileTask 的 cloudflareTaskType 参数决定 CapMonster Cloud 返回的内容。根据目标站点的要求选择选项:用于页面上挑战 callback 的 token,或用于您进一步请求的 cf_clearance cookie。
| 参数 | 代币 | cf_clearance |
|---|---|---|
cloudflareTaskType | token | cf_clearance |
| 代理 | 可选默认在 CapMonster Cloud 代理上运行 | 必需您自己的代理 |
websiteKey | Cloudflare Challenge 密钥,例如0x4AAAAAAABUYP0XeMJF0xoy | 任何字符串,例如xxxxxx |
| 页面数据 | pageAction, data (cData), pageData (chlPageData) | htmlPageBase64 — 403“Just a moment”页面的 Base64 |
| 结果 | solution.token | solution.cf_clearance |
| 在哪里使用它 | 页面上的挑战 callback | Cookie: cf_clearance=<value> 标头或浏览器上下文 |
| proxyType | 描述 |
|---|---|
http | 正规HTTP代理 |
https | 用于一些自定义代理 |
socks4 | SOCKS4代理 |
socks5 | SOCKS5代理 |
完整参数参考:Cloudflare Challenge 任务文档。
CapMonster Cloud API 充当 cf_clearance 求解器:它接受任务参数,在其服务器上处理它们并返回 token 或 cf_clearance cookie。解决 Cloudflare Challenge 需要四个步骤:获取 API 密钥、发送任务、轮询结果,并在您自己的请求中使用返回的 token 或 cookie。
clientKey 参数。使用类型 TurnstileTask 调用 createTask。 cloudflareTaskType 参数决定您返回的内容:token 或 cf_clearance cookie。根据目标站点的要求选择选项。参见如何区分挑战与旋转门。
选项 1 · 挑战 (token) — 默认在 CapMonster Cloud 代理上运行。必填字段:
| 参数 | 描述 |
|---|---|
| 类型 | TurnstileTask |
| websiteURL | 解决挑战的页面的 URL |
| websiteKey | Cloudflare Challenge 密钥,例如0x4AAAAAAABUYP0XeMJF0xoy |
| cloudflareTaskType | token |
| pageAction | 验证码 callback 中的 action 字段,通常为 managed 或 non-interactive |
| userAgent | 当前CapMonster Cloud支持的UA。您可以在https://capmonster.cloud/api/useragent/actual获取最新值。 |
| 数据 | cData 参数的值 |
| pageData | chlPageData 参数的值 |
可选:apiJsUrl 和代理字段。仅当站点不接受token或内置服务受到限制时才需要自己的代理;有IP授权,白名单65.21.190.34。
请求示例:
{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTask",
"websiteURL": "https://yourwebsite.com/page-with-cf-challenge",
"websiteKey": "your-website-key",
"cloudflareTaskType": "token",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
"pageAction": "your-page-action",
"pageData": "your-page-data",
"data": "your-data"
}
}选项 2 · 挑战 (cookie) — 需要您自己的代理。必填字段:
| 参数 | 描述 |
|---|---|
| 类型 | TurnstileTask |
| websiteURL | 解决挑战的页面的 URL |
| websiteKey | 可以传递任何字符串,例如xxxxxx |
| cloudflareTaskType | cf_clearance |
| htmlPageBase64 | “Just a moment”页面的 Base64 返回状态 403 |
| userAgent | 当前CapMonster Cloud支持的UA。您可以在https://capmonster.cloud/api/useragent/actual获取最新值。 |
| proxyType | http、https(对于某些自定义代理)、socks4、socks5 |
| proxyAddress, proxyPort, proxyLogin, proxyPassword | 你的代理人。不允许透明代理和本地机器代理。 |
请求示例:
{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTask",
"websiteURL": "https://yourwebsite.com/page-with-cf-challenge",
"websiteKey": "xxxxxxxxxx",
"cloudflareTaskType": "cf_clearance",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
"proxyType": "your-proxy-type",
"proxyAddress": "your-proxy-address",
"proxyPort": 1234,
"proxyLogin": "your-proxy-login",
"proxyPassword": "your-proxy-password"
}
}端点和响应 — 两个选项相同:
POST https://api.capmonster.cloud/createTask
{
"errorId": 0,
"taskId": 407533072,
"errorCode": null,
"errorDescription": null
}使用 taskId 轮询 getTaskResult,直到 status 变为 ready。两个选项的请求是相同的; solution 对象携带您要求的任何结果。
端点和请求:
POST https://api.capmonster.cloud/getTaskResult
{
"clientKey": "API_KEY",
"taskId": 407533072,
"errorCode": null,
"errorDescription": null
}选项 1 · 挑战 (token) — solution.token
{
"errorId": 0,
"status": "ready",
"solution": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
"token": "0.iGX3xsyFCkbGePM3jP4P4khLo6TrLukt8ZzBvwuQOvbC...f61f3082"
}
}页面调用callback函数时使用token。
选项 2 · 挑战 (cookie) — solution.cf_clearance
{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0...ZHi.w"
}
}您添加到浏览器或与原始 HTTP 请求一起发送的特殊 Cloudflare cookie。
如果您使用 cookie,请在原始 HTTP 请求的 Cookie: cf_clearance=<value> 标头中传递其值,或者在再次请求受保护的 URL 之前在浏览器上下文中设置它。
如果您使用token,请将其传递给页面上的挑战callback。
token 选项需要挑战开始时页面传递给 turnstile.render 的值:sitekey (websiteKey)、action (pageAction)、cData(数据)和 chlPageData (pageData)。 cookie选项需要htmlPageBase64中挑战页面的HTML; websiteKey 可以是任何字符串。
createTask 创建 CAPTCHA 求解任务,并使用我们的客户端库通过 getTaskResult 检索结果。对于低代码工作流程,请使用官方 CapMonster Cloud n8n 节点。
GET https://example.com/protected-page
User-Agent: <userAgent from the task>
Cookie: cf_clearance=<value>在原始 HTTP 请求的 Cookie: cf_clearance=<value> 标头中传递返回值,或在再次请求受保护的 URL 之前在浏览器上下文中设置它。在官方示例中,使用相同的代理和相同的User-Agent来加载页面、解决任务并使用cookie发送请求。
在 Selenium、Playwright 或 Puppeteer 中,在导航到受保护的 URL 之前,使用框架自己的方法设置 cookie — 然后浏览器会打开页面,而无需重复询问。如果您请求了 token,请将其传递给页面上的挑战 callback。
cf_clearance cookie、服务不接受的代理或过时的页面参数。下面的每张卡片都列出了错误和修复方法。cf_clearance cookie、cookie 已过期或 Cloudflare 重新检查了会话 (Precursor clearance)。请求一个新的cookie。userAgent,如官方示例中所示。 Cloudflare 还指出,从与发布的 IP 不同的 IP 解析的 Managed Challenge 无效,并且可能导致质询循环 — 请参阅 Cloudflare 文档。http、https、socks4 或 socks5。Cloudflare Challenge 是当 WAF 规则、Bot Management 或速率限制认为请求可疑(例如,基于 TLS 指纹、IP 信誉或行为信号)时,Cloudflare 在授予对受保护页面的访问权限之前显示的中间检查。在检查过程中,访问者会看到中间的“请稍等……”页面。如果检查成功通过,Cloudflare 会发出一个 cf_clearance cookie——它与访问者和设备绑定,并且在有限时间内有效——之后浏览器就可以访问原始页面。
所有这三个都依赖于来自浏览器的客户端信号。 JS Challenge(非交互式)在后台运行,通常不到五秒;如果没有通过,则Cloudflare显示另一个挑战页面。 Managed Challenge 允许 Cloudflare 从请求特征和浏览器信号中动态选择检查,直至交互步骤。 Turnstile 是一个可嵌入的小部件,它返回一个 token 以通过 Siteverify API 进行验证;通过可选的预许可,它还可以发出 cf_clearance cookie。
重复质询或 403 意味着该请求没有有效的 cf_clearance cookie、该 cookie 已过期,或者该请求来自与该 cookie 发出的访问者或设备不同的访问者或设备。即使有效的 cookie 也不能保证访问:Cloudflare 维护 Precursor clearance — 对会话行为的持续重新评估,可以降低或重置许可级别,并在流量模式开始看起来可疑时触发重复质询。
CapMonster Cloud 通过两个 API 调用异步解决任务:使用任务参数的 createTask,然后轮询 getTaskResult,直到解决方案准备就绪。根据任务类型,服务返回 token(在没有代理的情况下插入到 callback 中)或 cf_clearance cookie(必须使用代理)。然后,您可以在常规 HTTP 请求的 Cookie: cf_clearance=<value> 标头中传递结果值,或者在浏览器上下文中设置它 - 之后受保护的页面将打开,而无需手动通过检查。
使用您的 clientKey(API 密钥)和任务参数向 createTask 发送 POST 请求,通过轮询 getTaskResult 等待结果准备就绪(直到状态为 ready),然后在 HTTP 客户端或浏览器中使用生成的 token 或 cookie自动化。对于现成的集成,请使用 GitHub 上的 CapMonster Cloud 存储库 中的官方 SDK — 它们将 createTask / getTaskResult 循环包装到单个调用中。
仅对于返回 cf_clearance cookie 的任务,代理才是必需的。在官方示例中,相同的代理用于以下请求。对于 token 结果,不需要代理 - CapMonster Cloud 默认使用其内置代理(如果您按 IP 列入白名单,请添加 65.21.190.34)。支持型号:http、https、socks4、socks5;不允许透明代理和本地计算机上的代理。
是的。对于 n8n,有一个官方 CapMonster Cloud 节点 - 从界面安装或通过自托管实例上的 npm install @zennolab_com/n8n-nodes-capmonstercloud 安装。在其他情况下,您的代码首先向 CapMonster API 发出常规 HTTP 请求(通过 requests、axios 或任何其他 HTTP 客户端),然后使用其自己的方法将结果传递到浏览器框架(Selenium、Playwright、Puppeteer 等)。在导航到受保护的 URL 之前,需要使用此方法设置 cf_clearance cookie — 然后浏览器将通过已经有效的检查打开页面,而无需重复质询。
解决Cloudflare Challenge是一项技术操作,其合法性取决于所产生的访问如何使用,而不是工具本身。 CapMonster Cloud 适用于法律自动化——测试、监控和收集公开可用的数据——而遵守法律和目标资源的使用条款的责任由用户承担。
我们不保证 100% 的成功率:CAPTCHA 类型和目标站点配置可能随时更改。实际解决速度和成功率取决于目标站点、服务器负载和网络状况。
Cloudflare 是 Cloudflare, Inc. 的商标。CapMonster Cloud 不隶属于 Cloudflare,也不受其认可。该服务旨在用于公开数据、测试您自己或授权的网站、图像识别和可访问性。未经许可,禁止通过登录或付费专区收集第三方数据;您自己的帐户不受影响。您在开始工作之前确定数据的法律状态。