如何使用Puppeteer [JavaScript] 通过Capsolver扩展解决reCaptcha v2

Aloísio Vítor
Image Processing Expert
29-Dec-2025

简介
自动化浏览器交互通常需要处理CAPTCHA挑战,尤其是在使用Puppeteer等工具时。在本指南中,我们将逐步介绍如何设置Puppeteer JS与CapSolver浏览器扩展,以高效解决reCAPTCHA v2。虽然本教程专注于reCAPTCHA v2,但相同的方法也可以扩展到CapSolver支持的其他CAPTCHA类型。
在本文结尾,您将了解如何安装所需的依赖项,配置CapSolver扩展,并在Puppeteer控制的浏览器会话中直接触发CAPTCHA求解。
1. 安装puppeteer组件
⚠️ 在本博客中,我们将解释如何设置Puppeteer JS与CapSolver扩展以解决reCAPTCHA v2。然而,此方法也可用于其他CAPTCHA类型。
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
2. 设置扩展
下载存档,并将它解压到项目根目录下的文件夹 ./CapSolver.Browser.Extension 中。
扩展有多种设置,包括自动CAPTCHA求解、代理支持和细粒度控制选项。这些设置在文件 ./assets/config.json 中可用。
这些设置包括:
json
{
"apiKey": "YourApiKey",
"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 并将CAPTCHA发送给CapSolver。
使用 page.goto() 导航到目标页面。CAPTCHA可以自动或手动发送求解。在此示例中,我们通过等待CAPTCHA复选框并点击它来手动触发。
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。此设置提供了一种灵活且可扩展的方式,在真实浏览器环境中直接处理CAPTCHA挑战。通过调整扩展配置,可以将相同的流程用于CapSolver支持的其他CAPTCHA类型,适用于测试、自动化和大规模基于浏览器的任务。
常见问题解答(FAQ)
1. 此方法是否可以在无头模式下使用?
CapSolver浏览器扩展需要可见的浏览器环境。因此,使用基于扩展的方法时推荐设置 headless: false。
2. 此设置是否适用于reCAPTCHA v2以外的CAPTCHA类型?
是的。CapSolver扩展支持多种CAPTCHA类型。您可以在 config.json 文件中启用或禁用特定的CAPTCHA求解器,并相应地调整工作流程。
3. 使用CapSolver扩展时是否需要代理?
代理是可选的。扩展支持代理配置,但许多用例无需代理。代理的使用取决于您的目标网站和自动化需求。
4. reCAPTCHA的token模式和click模式有什么区别?
Token模式以编程方式获取CAPTCHA解决方案,通常在自动化中更稳定。Click模式模拟用户与CAPTCHA复选框的交互。
5. 此设置是否可用于生产环境?
是的。通过适当的配置、错误处理和扩展性考虑,此方法可以集成到生产级浏览器自动化工作流中。
合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。
更多

如何将Helium与CapSolver集成以实现无缝的验证码解决
使用 Helium 和 CapSolver 自动化浏览器并使用 Python 和 Selenium 解决 Cloudflare Turnstile, reCAPTCHA v2/v3。

Ethan Collins
30-Dec-2025

如何使用Puppeteer [JavaScript] 通过Capsolver扩展解决reCaptcha v2
学习如何使用 Puppeteer 和 Capsolver 扩展无缝解决 reCaptcha v2,详细指南介绍如何有效设置和自动化验证码解决方案。

Aloísio Vítor
29-Dec-2025

如何识别各种 reCAPTCHA 类型
探索 reCAPTCHA 的世界:学习识别其类型,从原始版本到企业版,并理解它们对网络安全性及用户体验的影响。

Emma Foster
26-Dec-2025

使用 CapSolver API 解决 reCaptcha v2
通过此分步指南,使用CapSolver API轻松解决reCaptcha V2,提供Python和GO解决方案。非常适合寻求快速有效验证码解决方法的用户

Nikolai Smirnov
25-Dec-2025

如何使用 Node.JS 解决 reCaptcha v2
学习如何使用Node.js通过CapSolver解决reCAPTCHA v2。包括无代理和基于代理的示例、设置步骤以及最佳实践。

Anh Tuan
17-Dec-2025

如何正确输入验证码以及如何识别reCAPTCHA v2的站点密钥
识别ReCAPTCHA v2的站点密钥是处理现代CAPTCHA实现时常见的挑战。本文解释了为什么站点密钥很重要,为什么手动定位通常很困难,以及CAPTCHA识别服务如何简化这一过程。它还介绍了CapSolver的Chrome扩展程序,该程序可自动检测ReCAPTCHA v2参数并返回结构化结果,帮助用户更高效地处理启用CAPTCHA的网站。

Sora Fujimoto
16-Dec-2025

