Cookie使用通知

本网站会使用cookies,以便记住您的选择,并提供个性化服务。了解更多

如果网站速度慢,请使用网站链接 2captcha.cn
Puppeteer验证码求解器实践

简介:如何开始在Puppeteer中使用扩展与2Captcha反验证码API交互

  • 注册验证码解答服务
  • 安装Puppeteer和其他所需的程序包:
  • 使用扩展下载存档文件
  • 解压到项目根目录中的文件夹./2captcha-solver
  • 设置扩展
  • 在Puppeteer中启动并初始化扩展
如何使用Puppeteer自动绕过验证码,Puppeteer reCAPTCHA求解器&验证码绕过
Puppeteer绕过reCAPTCHA

Puppeteer验证码绕过:它是如何工作的

2Captcha服务旨在自动识别并绕过验证码。

绕过过程如下:使用API,客户从验证码放置页面向服务传递一组必要的参数,在那里员工将解析它。之后,客户请求一组参数,必须将这些参数传递给相应的字段,以解析页面上的验证码。

验证码识别服务已完全自动化。

该服务的API可用于与PuppeteerSeleniumPlaywright一同工作。

在Puppeteer中使用"puppeteer-extra-plugin-stealth"来避免验证码

Puppeteer标志

Puppeteer是一个Node库,允许您启动浏览器并在其中执行各种操作。Puppeteer Node.js库对于各种需要浏览器自动化的任务来说是一个很好的工具。Puppeteer的优点是其易用性和在无标头模式工作的能力。一些Puppeteer插件可以让你隐藏自动化的事实。在开发解析器时隐藏自动化的事实是很重要的,因为这将使浏览器看起来更像一个人,而不会被暴露。

通过2Captcha服务使用Puppeteer

要绕过Puppeteer中的验证码,需要特殊的解答服务。

以下工具可用于绕过验证码:"puppeteer"、 "puppeteer-extra"和"puppeteer-extra-plugin-stealth"。

puppeteer-extra是围绕Puppeteer的轻量级包装器

puppeteer-extra-plugin-stealth是puppeteer-extra的附加功能,用于隐藏自动化的痕迹。

Puppeteer node库绕过验证码

查看手册学习如何使用2Captcha求解器扩展与Puppeteer库共同执行网页抓取、测试和创建网站机器人程序。

详细信息请阅读绕过说明。

手册: 如何在 Puppeteer 中使用扩展解决 reCAPTCHA 问题

1. 安装组件

安装 Puppeteer 和其他所需软件包:

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

2. 设置扩展

下载带有扩展的 压缩包,并解压到项目根目录下的 ./2captcha-solver文件夹中。

该扩展有许多设置,包括自动解决指定类型的验证码、支持 "代理 "以及其他设置。这些设置可在文件 ./common/config.js中找到。要为自动重验证码 V2 解决方案添加设置,你需要打开文件 ./common/config.js,并将 autoSolveRecaptchaV2 字段的值改为 true

接下来,您需要配置扩展:

  1. 在扩展设置文件 ./common/config.js 中输入你的 API 密钥。您的密钥必须写入 apiKey 字段的值。您可以在[页面](https://2captcha.com/setting)上查看并复制您的 API 密钥。示例: apiKey: "8080629c1221fdd82m8080000ff0c99c"

  2. 禁止在安装后打开扩展设置页面。为此,请在文件 ./manifest.json 中删除以下几行:

"options_ui": {
    "page": "options/options.html",
    "open_in_tab": true
},

3. 浏览器自动化

在 Puppeteer 中启动并初始化扩展:

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

(async () => {
  const pathToExtension = require('path').join(__dirname, '2captcha-solver');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: falseargs: [
      `--disable-extensions-except=${pathToExtension}``--load-extension=${pathToExtension}`、
    ],
    executablePath:executablePath()
  });

  const [page] = await browser.pages()
})();

3.1 打开页面

打开页面 reCAPTCHA demo 并发送验证码。

使用 page.goto() 进入 reCAPTCHA demo 页面。接下来,您需要发送验证码以获取解决方案,这可以手动或自动完成。

在我们的例子中,我们将手动发送验证码,为此,我们要等待带有 CSS 选择器 .captcha-solver 的扩展按钮可用,然后点击该按钮。点击该按钮后,验证码就会转到该服务以寻求解决方案。

// 打开页面
await page.goto('https://2captcha.com/demo/recaptcha-v2') 

// 等待带有 CSS 选择器".captcha-solver "的元素可用
await page.waitForSelector('.captcha-solver')
// 点击带有指定选择器的元素
await page.click('.captcha-solver')

3.2 检查验证码状态

在收到服务的响应后,扩展按钮 .captcha-solver 将改变数据属性 data-state 的值。通过观察这个 data-state 属性的值,你可以监控扩展的状态。破解验证码后,该属性的值将变为 "solved"("已破解")。

data-state 属性值的说明:

属性描述
data-state="ready"扩展已准备好解决验证码问题。要发送验证码,您需要点击按钮。
data-state="solving"解决验证码。
data-state="solving"验证码已成功解决。
data-state="error"收到回复时出错或验证码未成功解决。

在这一步,你需要等待验证码被解决,之后属性值将变为"solved",这将是验证码成功解决的信号。完成这一步后,就可以执行必要的操作了。

// By default, waitForSelector waits for 30 seconds, but this time is usually not enough, so we specify the timeout value manually with the second parameter. The timeout value is specified in "ms".
await page.waitForSelector(`.captcha-solver[data-state="solved"]`, {timeout: 180000})

4. 执行操作

破解验证码后,我们可以开始在页面上执行必要的操作。在我们的例子中,我们将点击 "检查 "按钮,检查收到的验证码解决方案是否正确。成功通过检查后,你会看到 "验证码已成功通过!"的信息。

// 点击 "检查 "按钮,检查验证码是否成功解决。
await page.click("button[type='submit']")

恭喜您,验证码已成功通过!示例的完整源代码

Cloudflare Turnstile标志

Cloudflare验证码绕过

自动机器人程序被Cloudflare验证码服务阻止。2Captcha服务可用于在Puppeteer中绕过任何页面上的Cloudflare验证码。

可在Puppeteer中使用该服务的API。要在Puppeteer中绕过Cloudflare,您需要集成一个库来与API交互。详细信息请阅读API说明。

Cloudflare验证码绕过服务
hCaptcha标志

hCaptcha绕过

在许多情况下,hCapthca会干扰自动化任务。2Captcha提供hCaptcha求解服务。该服务允许您绕过任何网页上的hCaptcha。

可在Puppeteer中使用该服务的API。要在Puppeteer中绕过hCaptcha,您需要集成一个库来与API交互。详细信息请阅读API说明。

hCaptcha绕过服务

最佳Puppeteer反验证码服务

名为Puppeteer的Node.js框架提供了一个高级API,用于通过DevTools协议控制Chrome或Chromium的无标头版本。此API采用远程控制下的无标头Chromium实例作为访问浏览器(chrome)渲染网页及其JavaScript组件容量的网关。Puppeteer默认运行无标头模式,但也可以设置为运行非无标头模式(完整的Chrome或Chromium)。测试人员和求解器经常使用该工具。您可以将2Captcha求解器拓展 与Puppeteer配合使用来解答验证码。

根据CaptchaTheCat分析,2Captcha拥有最好的服务。

captchathecat
2Captcha 求解器拓展与Puppeteer配合使用绕过验证码

需要定制解答方案?试试验证码求解器API

使用我们的SDK绕过验证码

如果Puppeteer的浏览器自动化对您的情况来说看起来太复杂和浪费资源,总会有替代方法的:您可以构建基于请求的解决方案,并使用我们的SDK库编程语言:JavaC#C++PHPPython以及Ruby。文档已整理至官方GitHub页面。

Chrome和Firefox浏览器均可使用验证码绕过扩展程序验证码绕过 扩展程序建议扩展
备用扩展
CaptchaTheCat