Cloudflare Turnstile 正迅速成为现代网站首选的验证码替代方案。与传统验证码不同,Turnstile 在后台静默运行,这使得它更难被标准自动化工具检测和绕过。
但如果你能构建一个自己的 Turnstile 解决 API——一个接收挑战并返回有效令牌的 API,而无需编写任何传统代码呢?
在本指南中,你将学习如何将 n8n(一个可视化工作流自动化工具)与 CapSolver(一个基于人工智能的验证码解决服务)结合,创建一个按需解决 Cloudflare Turnstile 挑战的强大 API 端点。
你将构建的内容:
- 一个 Cloudflare Turnstile 解决 API
- 一个网络爬虫示例,该示例解决 Turnstile、提交令牌到网站并提取受保护的数据
Cloudflare Turnstile 是一种智能验证码替代方案,旨在验证用户而不会带来传统挑战的摩擦。它不强制用户点击复选框或识别图片中的对象,而是通过浏览器信号和行为分析自动验证访客。
Turnstile 为网站提供了三种控件模式:
从解决角度来看,模式不会改变你配置 CapSolver 的方式 —— 你始终需要相同的参数: 和 。
不要将 Turnstile 与 Cloudflare 的全页安全挑战 混淆 —— 那是显示“执行安全验证”并带有加载进度条的页面,让你在访问网站前完成验证。这是 Cloudflare 挑战(也称为 JS 挑战或托管挑战),而不是 Turnstile。
如果你看到全页的“执行安全验证”屏幕,那不是 Turnstile —— 而是 Cloudflare 挑战,需要不同的解决方式。查看 更多关键区别
开始之前,请确保你已准备好以下内容:
- 一个 n8n 实例 —— 可以是 自托管 或 n8n Cloud
- 一个 CapSolver 账户 —— 在此注册 并获取你的 API 密钥
- CapSolver 的 n8n 节点 —— 已作为官方节点在 n8n 中提供(无需安装)
重要提示: 确保你的 CapSolver 账户中有足够的余额。Turnstile 解决任务会根据使用情况消耗积分。
CapSolver 作为 官方集成 在 n8n 中提供 —— 无需安装社区节点。你可以在构建工作流时直接在节点面板中找到它。
由于是官方集成,你需要在 n8n 中创建凭证,以便 CapSolver 节点可以与你的账户进行身份验证。
进入你的 n8n 实例,导航至 设置 → 凭证。你将在这里看到所有已配置的凭证。
- 点击 创建凭证(右上角)
- 搜索 "CapSolver" 并选择 CapSolver API
- 输入你的 API 密钥 —— 直接从 CapSolver 仪表板 复制
- 将 允许的 HTTP 请求域名 保留为 (默认)
- 点击 保存
n8n 会自动测试连接。你应该会看到一个绿色的 “连接测试成功” 通知,确认你的 API 密钥有效。
重要提示: 你工作流中的每个 CapSolver 节点都会引用此凭证。你只需创建一次 —— 所有解决器工作流将共享同一凭证。
现在你已准备好构建你的 Turnstile 解决工作流!
在解决 Turnstile 挑战之前,你需要知道其参数 —— 特别是 和 (也称为站点密钥)。
Turnstile 仅需要两个参数,因此找到它们非常简单:
这仅仅是包含 Turnstile 控件的页面的完整 URL。从浏览器地址栏中复制它即可。
站点密钥嵌入在页面的 HTML 中。以下是几种查找方法:
1. 在页面源代码中搜索
右键点击页面 → 查看页面源代码(或按 )并搜索 :
2. 在 JavaScript 中搜索
一些网站通过 JavaScript 渲染 Turnstile 而不是 HTML 属性。在页面源代码中搜索 :
3. 检查 DevTools 的网络标签
打开 DevTools()→ 网络 标签 → 按 或 过滤。站点密钥通常会出现在请求 URL 或响应数据中。
4. 在 HTML 中搜索
Turnstile 从 Cloudflare 加载其脚本。在页面源代码中搜索此域名 —— 站点密钥通常在附近:
提示:
- 站点密钥始终以 开头,并且是一个长的字母数字字符串
- 如果网站使用 Cloudflare 的托管挑战(访问网站前的全页挑战),Turnstile 控件可能不在页面源代码中 —— 它是由 Cloudflare 的挑战页面提供的
此工作流创建一个 POST API 端点,接收 Turnstile 参数并返回解决后的令牌。
该工作流由三个节点组成:
- Webhook —— 接收带有 Turnstile 参数的传入 POST 请求
- Cloudflare Turnstile —— 将挑战发送到 CapSolver 并等待解决方案
- 响应 Webhook —— 以 JSON 响应返回解决方案
1. Webhook 节点
这将创建一个端点:
2. CapSolver Cloudflare Turnstile 节点
一些网站还需要 metadata.action 和/或 metadata.cdata —— 你可以在节点的 可选 部分添加这些内容。同时在此节点中选择你的 CapSolver 凭证。
3. 响应 Webhook 节点
这将返回完整的 CapSolver 响应,包括解决后的 Turnstile 令牌。
向你的 Webhook 端点发送 POST 请求:
预期响应:
复制以下 JSON 并通过 菜单 → 从 JSON 导入 导入到 n8n 中:
点击展开工作流 JSON
Turnstile 解决 API 端点接受以下参数:
提示: 你可以通过检查页面源代码来识别 和 —— 参见 如何识别 Turnstile 参数。
与 reCAPTCHA 相比,Turnstile 更简单 —— 你只需要两个必需参数。一些网站可能还需要可选的 或 字段 —— 如果令牌未被接受,请在节点的 可选 部分添加这些内容。
上述 API 工作流展示了如何获取已解决的 Turnstile 令牌。但你实际上如何使用它呢?
在现实世界的自动化中,解决挑战只是工作的一半。你需要提交令牌到目标网站 —— 就像浏览器那样 —— 以解锁 Turnstile 保护后的数据或操作。
以下是通用模式:
- 解决挑战 → 从 CapSolver 获取令牌
- 提交令牌 → 通过 HTTP 请求将令牌发送到目标网站(通常作为 表单字段)
- 验证响应 → 检查网站是否接受该令牌
- 处理结果 → 提取你需要的数据
示例: https://example.com/ —— 一个受 Turnstile 保护的网站
工作流流程
工作原理
- 手动触发 —— 手动启动工作流(点击“执行工作流”)。你可以用任何触发器替换它 —— Webhook、定时器、应用事件等。
- CapSolver Cloudflare Turnstile —— 解决 Turnstile 挑战:
- 操作:
- 网站 URL:
- 网站密钥:(通过检查页面源代码找到 —— 参见 如何识别 Turnstile 参数
- HTTP POST 请求 —— 提交已解决的令牌到目标网站:
- 令牌通过 表单字段发送
- 包含网站预期的其他表单字段(例如 、)
- 这就是浏览器在 Turnstile 验证后提交表单时所做的
- IF 节点 —— 检查响应是否表示成功(例如重定向、成功消息或特定 JSON 字段)
- 编辑字段 — 从响应中提取你需要的数据。在实际场景中,这一步你将使用HTML节点解析HTML,提取特定元素(例如用户数据、产品列表、仪表板内容),并将其映射到你的输出字段。
关键概念:每个网站处理令牌提交的方式不同。在这个示例中,令牌通过POST请求发送到表单字段——但其他网站可能期望它以不同的字段名、JSON正文、请求头或完全不同的端点发送。始终使用DevTools的网络标签检查网站的实际表单提交,以确定令牌需要如何发送。
- 识别Turnstile参数 — 通过检查页面源代码找到和
- 检查表单提交 — 使用浏览器的DevTools网络标签查看表单提交时发送的请求(URL、方法、请求头、正文字段)
- 在n8n中复制请求 — 配置HTTP请求节点以完全匹配表单提交,将解决的令牌插入正确的字段(通常是,但请检查实际表单)
- 添加验证 — 使用IF节点检查响应并确认数据是否已解锁
- 提取数据 — 一旦网站接受令牌,解析响应以提取你需要的数据。对于HTML响应使用HTML节点,对于JSON响应使用编辑字段
注意:此示例为简化起见使用了手动触发,但你可以将其替换为任何触发节点——Webhook(构建API)、定时触发(每小时运行一次)、应用事件(响应Telegram消息)或其他。有关所有选项,请参阅工作流触发方式。
本指南中的示例使用了手动触发(用于抓取工作流)和Webhook(用于API工作流),但n8n提供了更多启动工作流的方式。你可以将触发节点替换为适合你用例的节点:
例如,要每小时运行一次你的抓取工作流,只需将手动触发节点替换为定时触发节点,并将间隔设置为1小时。其余工作流保持完全不变。
一旦你的工作流解决了Turnstile挑战并从目标网站获取了数据,你将需要存储或导出这些数据。n8n提供了内置的数据转换和输出节点来实现这一点。
在保存之前,你可以使用n8n的内置节点转换抓取的数据:
在IF节点验证响应后,你可以添加以下节点来保存数据:
提示:你可以组合多个输出——例如,通过将两个节点连接到IF节点的“true”输出,同时保存到Google表格并发送Telegram通知。
- 立即使用令牌 — Turnstile令牌会快速过期。在从求解器API收到令牌后,立即将其发送到目标网站。
- 配置前验证参数 — 在配置工作流前,始终通过检查页面源代码确认正确的。
- 确保API密钥安全 — 千万不要在客户端代码中暴露你的CapSolver API密钥。这些n8n工作流将密钥保留在服务器端,这是推荐的做法。
- 监控你的余额 — 在CapSolver仪表板中设置余额警报,以避免因余额不足导致工作流意外失败。
- 添加错误处理 — 对于生产工作流,添加一个IF节点在CapSolver节点后检查错误并优雅处理(例如重试、通知或记录失败)。
你已经学习了如何使用n8n和CapSolver构建一个Cloudflare Turnstile求解API和抓取工作流模式——无需传统编码。
在本指南中,我们涵盖了:
- 基于Webhook的工作流,用于Cloudflare Turnstile的API求解端点
- 现实世界的抓取模式,展示如何将解决的令牌提交到目标网站并提取受保护的数据
- 通过检查页面源代码识别Turnstile参数
- 令牌处理、错误管理和生产使用的**实践
关键要点:解决Turnstile挑战只是工作的一半——你还需要将令牌提交到目标网站以解锁受保护的数据。
准备好了吗? 注册CapSolver,使用优惠码n8n在首次充值时获得额外8%的奖励!
Cloudflare Turnstile 是一种 CAPTCHA 替代方案,通过浏览器信号和行为分析在后台验证访问者,而无需他们解决谜题。
CapSolver的n8n节点支持Cloudflare Turnstile、reCAPTCHA v2、reCAPTCHA v2 Invisible、reCAPTCHA v3等。查看n8n CapSolver集成页面获取完整列表。
费用根据使用情况而定。查看CapSolver定价页面获取当前的Turnstile费率。
Turnstile挑战通常在几秒钟内解决,因为没有涉及图像挑战。
可以!此工作流适用于自托管的n8n和n8n Cloud。CapSolver节点已作为官方集成提供——只需添加你的API凭证即可。
在页面源代码中搜索HTML中的或JavaScript中的。你也可以打开DevTools(按F12)→网络标签并按过滤请求,以在请求中找到网站密钥。详见如何识别Turnstile参数的详细指南。
Turnstile是Cloudflare的CAPTCHA替代方案,注重隐私和用户体验——它很少显示可见的挑战。reCAPTCHA是Google的机器人检测系统,可能需要用户解决图像谜题(v2)或分配行为评分(v3)。两者都可以通过n8n中的CapSolver解决。
CapSolver节点将返回错误。对于生产工作流,建议添加错误处理(例如使用IF节点检查错误并添加重试机制或通知)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/237809.html