产品集成资源文档定价
立即开始

© 2026 CapSolver. All rights reserved.

联系我们

Slack: lola@capsolver.com

产品

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • 浏览器插件
  • 更多验证码类型

集成

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • 合作伙伴
  • 查看所有集成

资源

  • 推荐返佣系统
  • 官方文档
  • API 参考
  • 博客
  • 常见问题 (FAQ)
  • 术语表
  • 系统状态

法律声明

  • 服务条款
  • 隐私政策
  • 退款政策
  • 请勿出售我的信息
博客/reCAPTCHA/如何使用 Puppeteer [JavaScript] 通过 CapSolver 扩展解决 reCAPTCHA v2
Jul23, 2023

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

Aloísio Vítor

Aloísio Vítor

Image Processing Expert

简介

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

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

1. 安装 puppeteer 组件

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

Copy
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

2. 设置扩展

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

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

这些设置包括:

json Copy
{
    "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 密钥。

示例:

Copy
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"

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

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

Copy
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 Copy
await page.goto('https://site.example') 

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

完整代码

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

查看更多

reCAPTCHAApr 16, 2026

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

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

Aloísio Vítor
Aloísio Vítor
reCAPTCHAMar 25, 2026

如何解决 reCAPTCHA v2 Python 和 API

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

Nikolai Smirnov

目录

Nikolai Smirnov
reCAPTCHAFeb 27, 2026

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

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

Aloísio Vítor
Aloísio Vítor
reCAPTCHAFeb 12, 2026

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

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

Sora Fujimoto
Sora Fujimoto