如何使用 Node.JS 解决 reCaptcha v2

Anh Tuan
Data Science Expert
17-Dec-2025

TL;DR
本指南解释了如何使用 CapSolver 的 API 通过 Node.js 解决 reCAPTCHA v2。它涵盖了无代理和带代理的实现方式,包含逐步设置说明,并提供可以直接使用的 Node.js 代码示例。通过遵循本教程,开发人员可以高效且可靠地将 reCAPTCHA v2 处理集成到他们的自动化或数据收集工作流中。
简介
reCAPTCHA v2 仍然是目前网页上最常部署的人工验证机制之一。对于从事自动化流程、数据提取或大规模浏览器自动化的开发人员来说,高效处理 reCAPTCHA v2 是一个常见的技术挑战。
在本文中,我们将通过 CapSolver API 逐步讲解如何在 Node.js 中实现解决 reCAPTCHA v2 的方法。您将学习如何配置环境、安装所需依赖,并实现无代理和带代理的解决方案。提供的示例面向生产环境,易于适应实际使用场景。
⚙️ 先决条件
- 代理(可选)
- 安装 Node.JS
- Capsolver API 密钥
🤖 第1步:安装必要的包
执行以下命令以安装所需包:
python
npm install axios
👨💻 无代理解决 reCaptcha v2 的 Node.JS 代码
以下是一个完成该任务的 Node.JS 示例脚本:
js
const axios = require('axios');
const PAGE_URL = ""; // 替换为您的网站
const SITE_KEY = ""; // 替换为您的网站
const CLIENT_KEY = ""; // 替换为您的 CAPSOLVER API 密钥
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Getting task result for task ID: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2TaskProxyless",
websiteURL: pageURL,
websiteKey: sitekey,
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Received token: ${response.solution.gReCaptcharesponse}`);
}
catch (error) {
console.error(`Error: ${error}`);
}
}
main();
👨💻 使用代理解决 reCaptcha v2 的 Node.JS 代码
以下是一个完成该任务的 Node.JS 示例脚本:
js
const axios = require('axios');
const PAGE_URL = ""; // 替换为您的网站
const SITE_KEY = ""; // 替换为您的网站
const CLIENT_KEY = ""; // 替换为您的 CAPSOLVER API 密钥
const PROXY = "https://username:password@host:port";
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Getting task result for task ID: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2Task",
websiteURL: pageURL,
websiteKey: sitekey,
proxy: PROXY
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Received token: ${response.solution.gRecaptchaResponse}`);
}
catch (error) {
console.error(`Error: ${error}`);
}
}
main();
⚠️ 修改这些变量
- PROXY: 如果使用 ReCaptchaV2Task,请替换为您的代理。
- CLIENT_KEY: 从 Capsolver 仪表板 获取您的 API 密钥。
- PAGE_URL: 替换为您的网站 URL。
- SITE_KEY: 替换为包含验证码的页面的站点密钥。
👀 更多信息
结论
在 Node.js 中解决 reCAPTCHA v2 不需要复杂操作。通过利用 CapSolver API,开发人员可以实现一个简洁且可扩展的解决方案,在不同网站配置下都能可靠运行。无论您选择无代理设置以简化流程,还是使用代理方法以获得更高的成功率,本指南中的示例都为生产环境提供了坚实的基础。
常见问题
1. 代理less 和代理-based 的 reCAPTCHA v2 任务有什么区别?
代理less 任务依赖于 CapSolver 的内部基础设施,实现起来更简单,而代理-based 任务允许您控制 IP 声誉和地理位置,以在更严格的网站上获得更高的成功率。
2. 什么时候应该使用 ReCaptchaV2Task 而不是 ReCaptchaV2TaskProxyless?
当目标网站强制要求 IP 一致性或应用地区限制,需要特定代理配置时,使用 ReCaptchaV2Task。
3. 通常需要多长时间才能收到 reCAPTCHA v2 令牌?
大多数任务在几秒钟内完成。实际时间取决于网站复杂度、挑战难度以及是否使用代理。
4. 这个解决方案可以集成到更大的 Node.js 自动化系统中吗?
可以。提供的函数是模块化的,可以嵌入到爬虫、自动化流程或基于浏览器的工作流中。
合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。
更多

用最佳验证码破解器解决无限验证码
学习使用最佳验证码解决工具无缝解决无限验证码,详细指南介绍如何有效设置和自动化验证码解决方案

Emma Foster
20-Jan-2026

2026年最佳reCAPTCHA求解器用于自动化&网页抓取
探索2026年最佳的reCAPTCHA求解器,用于自动化和网络爬虫。了解它们的工作原理,选择最适合的,并在机器人检测中保持领先。

Sora Fujimoto
15-Jan-2026

在 C++ 中解决 reCAPTCHA:完整指南
学习如何使用 CapSolver API 在 C++ 中解决 reCAPTCHA。本完整指南涵盖设置您的项目、创建任务和获取任务结果,并附有实际示例。

Nikolai Smirnov
14-Jan-2026

如何使用Node.js解决reCAPTCHA | 2026年指南
通过本指南了解如何使用Node.js和求解工具轻松解决reCAPTCHA v2和v3。今天提升你的自动化水平!

Emma Foster
05-Jan-2026

自动化 reCAPTCHA v2 解决:使用 CapSolver 的教程
让我们来了解一下如何通过CapSolver轻松自动化解决reCAPTCHA v2的方案。

Nikolai Smirnov
05-Jan-2026

如何在网络爬虫中解决 reCAPTCHA Enterprise 挑战
解决reCAPTCHA Enterprise的网络爬虫指南。包含Python代码、设置步骤和实现技巧。

Nikolai Smirnov
04-Jan-2026

