CAPSOLVER
博客
如何用 Node.JS 解决 reCaptcha v3

如何使用 Node.JS 解决 reCAPTCHA v3

Logo of CapSolver

Adélia Cruz

Neural Network Developer

28-Nov-2025

自动化SEO工具、谷歌搜索抓取、机器人工作流程或无浏览器爬虫通常需要与受reCAPTCHA v3保护的网站进行交互。与reCAPTCHA v2不同,v3版本不会显示图片挑战,而是从0.0到1.0无声地分配一个风险评分,而机器人通常会获得低于0.3的评分。
为了实现类似人类的行为并获得稳定的0.7–0.9评分,您的自动化脚本必须做到:

  • 发送正确的请求头
  • 使用正确的pageAction
  • 生成一个真实的令牌并使用可靠的求解器

在本指南中,您将学习如何使用Node.js + CapSolver 解决reCAPTCHA v3,包含可以直接运行的脚本、配置提示和最大化评分质量的最佳实践。

⚙️ 前提条件

🤖 第1步:安装必要的包

执行以下命令以安装所需的包:

JS 复制代码
npm install axios

👨‍💻 第2步:用于解决reCaptcha v3并获取0.7-0.9评分的Node.JS代码

以下是一个完成该任务的Node.JS示例脚本:

js 复制代码
const PAGE_URL = "https://antcpt.com/score_detector";
const PAGE_KEY = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf";
const PAGE_ACTION = "homepage";
const CAPSOLVER_KEY = "YourKey"

async function createTask(url, key, pageAction) {
    try {
      // 根据服务文档定义API端点和负载。
      const apiUrl = "https://api.capsolver.com/createTask";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        task: {
          type: "ReCaptchaV3TaskProxyLess",
          websiteURL: url,
          websiteKey: key,
          pageAction: pageAction
        }
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      const response = await axios.post(apiUrl, payload, { headers });
      return response.data.taskId;
  
    } catch (error) {
      console.error("创建CAPTCHA任务时出错: ", error);
      throw error;
    }
  }
  
  async function getTaskResult(taskId) {
    try {
      const apiUrl = "https://api.capsolver.com/getTaskResult";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        taskId: taskId,
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      let result;
      do {
        const response = await axios.post(apiUrl, payload, { headers });
        result = response.data;
        if (result.status === "ready") {
          return result.solution;
        }
        await new Promise(resolve => setTimeout(resolve, 5000)); // 等待5秒后重试
      } while (true);
  
    } catch (error) {
      console.error("获取CAPTCHA结果时出错: ", error);
      throw error;
    }
  }
  

function setSessionHeaders() {
  return {
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="107", "Chromium";v="107"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': 'Windows',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip, deflate',
    'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7',
  };
}

async function main() {
    
    const headers = setSessionHeaders();
    console.log("创建CAPTCHA任务...");
    const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
    console.log(`任务ID: ${taskId}`);

    console.log("获取CAPTCHA结果...");
    const solution = await getTaskResult(taskId);
    const token = solution.gRecaptchaResponse;
    console.log(`令牌解决方案 ${token}`);


  const res = await axios.post("https://antcpt.com/score_detector/verify.php", { "g-recaptcha-response": token }, { headers });
  const response = res.data;
  console.log(`评分: ${response.score}`);
}

main().catch(err => {
  console.error(err);
});

⚠️ 修改这些变量

  • capsolver.api_key: 从Capsolver仪表板获取您的API密钥。
  • PAGE_URL: 替换为想要解决reCaptcha v3的网站URL。
  • PAGE_KEY: 更新为带有reCAPTCHA的网站特定密钥。
  • PAGE_ACTION: 替换为页面的pageAction。您可以阅读此博客了解更多信息。

👀 更多信息

结论

解决Google reCAPTCHA v3对于现代自动化任务至关重要,例如SEO监控、SERP抓取、账户工作流程和后端验证系统。使用Node.js + CapSolver,您可以可靠地生成高评分的reCAPTCHA令牌,并避免被标记为自动化流量。

通过正确设置sitekeypageActionheaders并遵循CapSolver的任务结构,您的自动化流程将变得稳定、可扩展,并能抵抗reCAPTCHA检测。

❓ 常见问题

1. 什么是reCAPTCHA v3?它与v2有何不同?

reCAPTCHA v3 会分配一个基于行为的评分(0.0–1.0),而不是显示图片挑战。它在后台静默运行,并评估用户交互以检测机器人。

2. 如何在网站上找到reCAPTCHA v3的sitekey?

您可以在HTML中(data-sitekey属性)或在加载https://www.google.com/recaptcha/api.js的JavaScript中找到sitekey。

3. reCAPTCHA v3中的pageAction是什么意思?

pageAction告诉Google用户正在进行的活动,例如登录、搜索或提交。使用错误的值可能会显著降低您的评分。

4. 为什么我解决了reCAPTCHA v3后评分仍然很低?

常见原因包括:pageAction错误、IP质量低、请求头无效或sitekey不匹配。CapSolver提供优化的评分模型,有助于获得更高的评分。

5. 我可以将此Node.js解决方案与Puppeteer、Playwright或Selenium一起使用吗?

可以。在获得令牌后,您可以将其注入浏览器会话的表单中,或直接调用验证端点。

合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。

更多