CAPSOLVER
博客
如何使用 Puppeteer 和 Capsolver 扩展解决 reCAPTCHA v2

如何使用 Puppeteer [JavaScript] 通过 CapSolver 扩展解决 reCAPTCHA v2

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

29-Dec-2025

简介

自动化浏览器交互通常需要处理验证码挑战,尤其是在使用 Puppeteer 等工具时。在本指南中,我们将逐步介绍如何设置 Puppeteer JS 与 CapSolver 浏览器扩展 以高效解决 reCAPTCHA v2。虽然本教程专注于 reCAPTCHA v2,但同样的方法也可以扩展到 CapSolver 支持的其他验证码类型。

在本文结束时,您将了解如何安装所需的依赖项,配置 CapSolver 扩展,并在 Puppeteer 控制的浏览器会话中直接触发验证码解决。

1. 安装 puppeteer 组件

⚠️ 在本博客中,我们将解释如何设置 Puppeteer JS 与 CapSolver 扩展以解决 reCAPTCHA v2。然而,这种方法也可以应用于其他验证码类型。

复制代码
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

2. 设置扩展

下载扩展的压缩包,并将其解压到项目根目录下的文件夹 ./CapSolver.Browser.Extension 中。

该扩展有多种设置,包括自动验证码解决、代理支持和细粒度控制选项。这些设置在文件 ./assets/config.json 中可用。

这些设置包括:

json 复制代码
{
    "apiKey": "您的API密钥",
    "useCapsolver": true,

    "useProxy": false,
    "proxyType": "http",
    "hostOrIp": "",
    "port": "",
    "proxyLogin": "",
    "proxyPassword": "",

    "enabledForBlacklistControl": false,
    "blackUrlList": [],

    "enabledForRecaptcha": true,
    "enabledForRecaptchaV3": true,
    "enabledForcaptcha": true,

    "reCaptchaMode": "token",
    "captchaMode": "click",

    "reCaptchaDelayTime": 0,
    "captchaDelayTime": 0,

    "reCaptchaRepeatTimes": 10,
    "reCaptcha3RepeatTimes": 10,
    "captchaRepeatTimes": 10
}

在扩展设置文件 ./assets/config.json 中输入您的 API 密钥。密钥必须分配给 apiKey 字段。您可以直接从 CapSolver 仪表板复制 API 密钥。

示例:

复制代码
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"

在本示例中,reCaptchaMode 设置为 token。虽然 click 模式也是可用的,但通常推荐使用 token 模式来解决 reCAPTCHA。

3. 设置 Puppeteer 通过 CapSolver 扩展解决 reCAPTCHA

复制代码
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer'); 

(async () => {
  const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
    executablePath: executablePath()
  });
  
  const [page] = await browser.pages()
})();

接下来,打开页面 https://www.google.com/recaptcha/api2/demo 并将验证码发送给 CapSolver。

使用 page.goto() 导航到目标页面。验证码可以自动或手动发送进行解决。
在本示例中,我们通过等待验证码复选框并点击它来手动触发。

js 复制代码
await page.goto('https://site.example') 

// 等待 CSS 选择器为 "#recaptcha-anchor-label" 的元素
await page.waitForSelector('#recaptcha-anchor-label')
// 点击该元素
await page.click('#recaptcha-anchor-label')

完整代码

js 复制代码
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer'); 

(async () => {
  const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
    executablePath: executablePath()
  });
  
  const [page] = await browser.pages()

  // 打开页面
  await page.goto('https://site.example') 

  // 等待 CSS 选择器为 "#recaptcha-anchor-label" 的元素
  await page.waitForSelector('#recaptcha-anchor-label')
  // 点击该元素
  await page.click('#recaptcha-anchor-label')
})();

结论

您已成功使用 Puppeteer 和 CapSolver 浏览器扩展 解决了 reCAPTCHA v2。此设置提供了一种灵活且可扩展的方式,在真实浏览器环境中直接处理验证码挑战。通过调整扩展配置,可以将相同的流程用于 CapSolver 支持的其他验证码类型,适用于测试、自动化和大规模基于浏览器的任务。

常见问题 (FAQs)

1. 此方法能否在无头模式下使用?
CapSolver 浏览器扩展需要可见的浏览器环境。因此,使用扩展方法时建议将 headless 设置为 false

2. 此设置是否适用于 reCAPTCHA v2 以外的验证码类型?
是的。CapSolver 扩展支持多种验证码类型。您可以在 config.json 文件中启用或禁用特定的验证码解决器,并相应地调整工作流程。

3. 使用 CapSolver 扩展时是否需要代理?
代理是可选的。扩展支持代理配置,但许多用例无需代理即可运行。代理的使用取决于您的目标网站和自动化需求。

4. reCAPTCHA 的 token 模式和 click 模式有什么区别?
Token 模式通过程序获取验证码解决方案,通常在自动化中更稳定。Click 模式模拟用户与验证码复选框的交互。

5. 此设置能否用于生产环境?
是的。通过适当的配置、错误处理和扩展性考虑,此方法可以集成到生产级别的浏览器自动化工作流中。

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

更多

reCAPTCHA 无效的站点密钥或令牌?原因与解决指南
reCAPTCHA 无效的站点密钥或令牌?原因与解决指南

遇到“reCAPTCHA 无效的站点密钥”或“无效的 reCAPTCHA 令牌”错误?发现常见原因、逐步修复方法和故障排除技巧,以解决 reCAPTCHA 验证失败的问题。学习如何修复 reCAPTCHA 验证失败,请再试一次。

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

16-Apr-2026

如何解决 reCAPTCHA v2 Python 和 API
如何解决 reCAPTCHA v2 Python 和 API

学习如何使用 Python 和 API 解决 reCAPTCHA v2。这份全面指南涵盖代理和无代理方法,提供可用于自动化的生产就绪代码。

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

25-Mar-2026

如何为人工智能基准测试平台自动化解决reCAPTCHA
如何自动化破解reCAPTCHA以用于人工智能基准测试平台

学习如何自动化处理reCAPTCHA v2和v3以进行AI基准测试。使用CapSolver优化数据收集并保持高性能的AI流水线。

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

28-Feb-2026

如何解决网络爬虫中的常见reCAPTCHA问题
如何修复网络爬虫中的常见reCAPTCHA问题

学习如何解决网络爬虫中的常见reCAPTCHA问题。探索针对reCAPTCHA v2和v3的实用解决方案,以确保数据收集流程的顺畅。

reCAPTCHA
Logo of CapSolver

Sora Fujimoto

13-Feb-2026

用最佳验证码破解器解决无限验证码
用最佳验证码破解器解决无限验证码

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

reCAPTCHA
Logo of CapSolver

Emma Foster

20-Jan-2026

2026年最佳reCAPTCHA求解器 用于自动化与网络爬虫
2026年最佳reCAPTCHA求解器用于自动化&网页抓取

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

reCAPTCHA
Logo of CapSolver

Sora Fujimoto

15-Jan-2026