如何使用 NodeJS 解决 Cloudflare Turnstile 验证码

Lucas Mitchell
Automation Engineer
08-Dec-2025

Cloudflare Turnstile 概述
Cloudflare Turnstile 提供了一种免费的解决方案,用于替换传统的CAPTCHA,通过一个简单的代码片段提供无烦恼的网页体验。它确保访问者是真实的用户,并防止滥用,而不会出现传统CAPTCHA相关的数据隐私问题或糟糕的用户体验。
识别Cloudflare Turnstile CAPTCHA
-
非交互式挑战:该过程无需用户交互。示例:非交互式测试

-
最小交互式挑战:如果系统怀疑访问者可能是机器人,可能需要简单的操作,如点击按钮。示例:管理测试

-
不可见挑战:该挑战在网页的HTML中悄然加载,用户无法察觉。示例:不可见测试

🛠️ 解决Cloudflare Turnstile CAPTCHA
⚙️ 前提条件
- 已安装 NodeJs
- Capsolver API 密钥
🤖 步骤 1:安装必要的包
执行以下命令以安装所需的包:
python
npm i axios
👨💻 步骤 2:NodeJS 代码解决 Cloudflare Turnstile CAPTCHA
以下是一个Python示例脚本,用于完成该任务:
js
const axios = require('axios');
const CAPSOLVER_API_KEY = "你的API密钥";
const PAGE_URL = "网站 ";
const WEBSITE_KEY = "网站密钥";
function solvecf(metadata_action = null, metadata_cdata = null) {
const url = "https://api.capsolver.com/createTask";
const task = {
type: "AntiTurnstileTaskProxyLess",
websiteURL: PAGE_URL,
websiteKey: WEBSITE_KEY,
};
if (metadata_action || metadata_cdata) {
task.metadata = {};
if (metadata_action) {
task.metadata.action = metadata_action;
}
if (metadata_cdata) {
task.metadata.cdata = metadata_cdata;
}
}
const data = {
clientKey: CAPSOLVER_API_KEY,
task: task
};
return axios.post(url, data)
.then(response => {
console.log(response.data);
return response.data.taskId;
});
}
function solutionGet(taskId) {
const url = "https://api.capsolver.com/getTaskResult";
let status = "";
const checkStatus = () => {
const data = { clientKey: CAPSOLVER_API_KEY, taskId: taskId };
return axios.post(url, data)
.then(response => {
console.log(response.data);
status = response.data.status || "";
console.log(status);
if (status === "ready") {
return response.data.solution;
}
return new Promise(resolve => setTimeout(resolve, 2000)).then(checkStatus);
});
};
return checkStatus();
}
async function main() {
try {
const taskId = await solvecf();
const solution = await solutionGet(taskId);
if (solution) {
const user_agent = solution.userAgent;
const token = solution.token;
console.log("User_Agent:", user_agent);
console.log("解决Cloudflare Turnstile CAPTCHA,token:", token);
}
} catch (error) {
console.error("CAPSOLVER API交互错误:", error);
}
}
main();
⚠️ 修改这些变量
- CAPSOLVER_API_KEY:从 Capsolver仪表板 获取你的API密钥。
- PAGE_URL:替换为你要解决CloudFlare Turnstile CAPTCHA的网站URL。
- WEBSITE_KEY:替换为网站的站点密钥
CloudFlare Turnstile CAPTCHA 的外观

同时,如果你想测试脚本的机器人特征,BrowserScan的Bot Detection工具可以帮助你识别并优化脚本中的机器人行为。
🔚 结论
Cloudflare Turnstile 提供了一种轻量级且隐私友好的传统CAPTCHA替代方案,通过有效过滤自动化流量来改善用户体验。借助Capsolver等工具,开发人员可以编程方式绕过Turnstile挑战,用于测试、爬取或自动化场景。通过遵循上述步骤并正确配置API参数,你可以快速将Turnstile解决集成到你的工作流中,轻松简化自动化请求。
❓ 常见问题
1. Cloudflare Turnstile 与传统 CAPTCHA 有什么不同?
Turnstile 专注于不可见且无摩擦的验证,无需用户交互,相比传统的基于图像的CAPTCHA,提供了更好的用户体验和隐私保护。
2. 使用 Capsolver 解决 Cloudflare Turnstile 是否需要代理?
不需要。示例使用的是 AntiTurnstileTaskProxyLess,意味着不需要代理。然而,在高安全或高吞吐量任务中,代理可能仍然有用。
3. 如何找到 Turnstile CAPTCHA 的 websiteKey?
在浏览器中打开网页 → 检查 → 搜索 turnstile 片段 → data-sitekey 值即为你的 网站密钥。
4. 此方法可用于大规模爬取或自动化吗?
可以,但请确保你的使用符合网站的服务条款。对于大量数据,建议处理延迟、轮换用户代理并使用适当的请求模式。
合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。
更多

如何使用 NodeJS 解决 Cloudflare Turnstile 验证码
在本文中,我们将向您展示如何使用 Node.js 解决 Cloudflare Turnstile 验证码。

Lucas Mitchell
08-Dec-2025

如何解决 Cloudflare 403 禁止访问错误以及 522/1020/1010/1015/1012
Cloudflare 是一种广泛使用的内容分发网络(CDN)和安全服务,它帮助网站缓解各种威胁,包括 DDoS 攻击和恶意机器人...

Emma Foster
08-Dec-2025

Cloudflare 错误 1006、1007、1008 解决方法 | 如何修复
遇到 Cloudflare 错误 1006、1007 或 1008?学习解决这些访问被拒绝问题的实用方法,提升您的网络爬虫体验。

Lucas Mitchell
05-Dec-2025

如何确定`action`是否需要使用CapSolver扩展程序来解决Cloudflare Turnstile
学习识别Cloudflare Turnstile的CAPTCHA操作以实现有效解决。按照我们的分步指南使用Capsolver的工具和技巧。

Nikolai Smirnov
05-Dec-2025

如何在 Selenium 中自动化解决 Cloudflare 验证
掌握在 Selenium 中解决 Cloudflare 验证的终极策略。使用 Undetected-Chromedriver、行为模拟和 CapSolver 的 API 实现可靠的网页自动化

Emma Foster
04-Dec-2025

如何使用 Node.js 解决 Cloudflare 挑战
了解 Cloudflare 为何阻止 Node.js 网络爬虫以及开发者如何可靠地获取 cf_clearance 用于数据工作流程。

Ethan Collins
03-Dec-2025

