npm 包 puppeteer-extra-plugin-recaptcha-2 使用教程

什么是 puppeteer-extra-plugin-recaptcha-2?

puppeteer-extra-plugin-recaptcha-2 是一个基于 Puppeteer 和 Puppeteer Extra 的 npm 包,可以驱动 Chrome 浏览器进行自动化操作并绕过 reCAPTCHA v2 验证。

reCAPTCHA 是谷歌推出的一种广泛使用的机器人验证码,原本是为了防止机器人自动注册、批量提交表单、发评论等恶意行为而设计的。但是对于一些实际应用场景来说,这种限制有时候是过于严格的,例如不能自动化测试某些网站,这时候就需要使用 puppeteer-extra-plugin-recaptcha-2 来解除 reCAPTCHA 的限制。

安装

在你的项目中安装 puppeteer-extra-plugin-recaptcha-2 及其所需的依赖项:

--- ------- --------- --------------- ----------------------------------

使用

----- --------- - --------------------
----- -------------- - --------------------------
----- --------------- - ---------------------------------------------

-------------------
  -----------------
    --------- -
      --- -----------
      ------ --------------------
    --
    --------------- ---- -- -------
  --
-

---------------------------------- ------- -- -
  ----- ---- - ----- -----------------

  ----- -------------------------------------------------------
  ----- ------------------------------------------ - -----------------
  -------------------- --- --------- -------------
  ----- ----------------------
  ----------------- ----------

  ----- ------------------------------- ---------------- -------------------
  ----- -------------------------------- -----------------
  ----- -------------------------------------
  -------------------- --- ------ - - ----- -------------

  ----- ---------------
--

如上所示的代码实现了以下步骤:

  1. 启动 Chrome 浏览器。
  2. 访问 Google reCAPTCHA 演示页面。
  3. 在 reCAPTCHA 显示出来时解除验证码验证。
  4. 在“电子邮件”输入框输入值,并在“提交”按钮上单击。
  5. 检查是否成功提交。

讲解

以上代码分为五个步骤,下面的详细介绍每个步骤的含义。

步骤 1:启动 Chrome 浏览器

----- ------- - ----- -----------------------

首先,我们需要创建一个浏览器实例,以便可以启动一个 Chrome 浏览器并使用它来处理后续的自动化操作。在这个教程中,我们使用 Puppeteer Extra 的默认设置启动 Chrome 浏览器,方法是调用 puppeteerExtra.launch()

步骤 2:访问 Google reCAPTCHA 演示页面

----- -------------------------------------------------------

使用 page.goto 方法来访问谷歌 reCAPTCHA 演示页面,以便在后续步骤中使用 reCAPTCHA 验证。

步骤 3:解除验证码验证

----- ----------------------

使用 page.solveRecaptchas() 方法可以解除 reCAPTCHA 验证。该方法在页面中自动查找 reCAPTCHA 元素,并使用特定提供商(我们在下面的“使用 2Captcha 提供商”章节中呈现了使用 2Captcha.com 作为示例提供商的步骤)解决 captcha。你可以设置选项来细化解决 captcha,例如:

----- ----------------------
  ----------- --- ---
  ------------ --
  -------------- -------
--

步骤 4:填写表单值和提交

----- ------------------------------- ---------------- -------------------
----- -------------------------------- -----------------

使用 page.type 方法可以将文本输入到一个元素中,而 page.click 方法可以单击一个元素。

在本例中,我们调用 page.type 方法向“电子邮件”文本框中输入电子邮件地址。然后,我们单击“提交”按钮以提交表单。

步骤 5:检查是否成功

----- -------------------------------------
-------------------- --- ------ - - ----- -------------

在这个步骤中,我们等待页面加载到具有 ID 为“result-stats”的元素,以确保成功提交了 reCAPTCHA 验证的表单。之后,我们检索页面的标题以检查页面是否成功加载?

使用 2Captcha 提供商

在上面的示例中,我们使用的 provider.id 是“2captcha” 提供商。在 2Captcha.com 官网上注册并充值之后,我们可以将 2Captcha 认证密钥存储在环境变量或在代码中硬编码。

为了实现在本地通过环境变量来获取 2Captcha API 密钥,我们需要在 .env 文件中设置它:

----------------------------------------

在获得密钥之后,我们可以在代码中使用如下方式的代码提供器来指定 2Captcha 提供商:

----- --------------- - ---------------------------------------------
----- ------------------ - ---------------------------------------------------------------------

-------------------
  -----------------
    --------- --- --------------------
      ------- ----------------------------
    ---
    --------------- ---- -- -------
  --
-

结论

Puppeteer Extra 和 puppeteer-extra-plugin-recaptcha-2 为浏览器自动化带来了更广泛的功能和灵活性。本文介绍了一个使用 Puppeteer Extra 和 puppeteer-extra-plugin-recaptcha-2 的应用程序,以及如何设置验证码提供程序,以解除 reCAPTCHA v2 限制。愿你能够在你的自动化测试领域中使用 puppeteer-extra-plugin-recaptcha-2,让你的工作更轻松、更轻快。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6006735b890c4f7277583f68


猜你喜欢

  • npm 包 text-resource-manager 使用教程

    简介 text-resource-manager 是一款前端文本资源管理工具,可以帮助开发者在项目中更加高效地管理文本资源。text-resource-manager 提供了统一的接口,可以方便地获取...

    4 年前
  • npm 包 azure-table-client 使用教程

    Azure Table Storage 是微软 Azure 云平台提供的一种 NoSQL 数据存储服务,提供高可用性、可扩展性和强一致性支持。而 azure-table-client 是一个能够让开发...

    4 年前
  • npm 包 check-git 使用教程

    简介 npm 是 Node.js 的包管理工具,目前是前端开发必不可少的工具之一。npm 上有许多优秀的包,其中 check-git 就是一款非常实用的工具,它可以帮助你检查你的文件夹是否为 Git ...

    4 年前
  • npm 包 bdownload 使用教程

    如果您是一名前端工程师,那么您一定很熟悉 npm 工具,它是前端开发中最为流行的包管理工具之一。而本篇文章将为您介绍一款名为 bdownload 的 npm 包,这是一款用于浏览器端下载文件的工具。

    4 年前
  • npm 包 httprouter-js 使用教程

    在前端开发领域,很多时候需要进行 URL 路由的处理。而在 JavaScript 中,我们可以通过 npm 包 httprouter-js 来实现这一功能。本篇文章会介绍 httprouter-js ...

    4 年前
  • npm 包 @fabienjuif/myrtille 使用教程

    引言 在前端开发中,我们经常会用到各种各样的 npm 包来实现一些功能。其中,@fabienjuif/myrtille 是一个非常实用的 npm 包,它可以帮助我们快速地实现类似于画板的功能,可以绘制...

    4 年前
  • npm 包 n-is-nan 使用教程

    简介 在 JavaScript 中,NaN 表示非数字(Not a Number),它是一种特殊的数据类型。NaN 主要用于表示数学运算错误,如 0/0 或 Infinity/Infinity 等。

    4 年前
  • 前端开发必备 npm 包:tillit-ace-script-editor 的使用教程

    介绍 tillit-ace-script-editor 是一个基于 ace 编辑器 封装的可配置代码编辑器,适用于 Web 前端开发。它可以帮助开发者实现代码高亮、智能提示、代码折叠等功能,极大地提高...

    4 年前
  • npm包jsonpath-picker-vanilla使用教程

    概述 随着前端技术的不断发展,JavaScript已经逐渐演变成一种能够胜任各种任务的语言。而npm已经成为前端开发的基础工具之一,它为我们提供了各种便利,如便捷地安装和更新第三方包。

    4 年前
  • npm 包 time-tracking 使用教程

    在进行 Web 开发过程中,我们经常需要记录代码执行时间和性能,以便更好地了解和优化我们的应用程序。为了满足这一需求,有很多实用的 npm 包,今天我们来介绍一个叫做 time-tracking 的 ...

    4 年前
  • npm 包 taro-apollo 使用教程

    简介 taro-apollo 是一款基于 React 框架 Taro 的插件,用于将 Apollo 数据层和 Taro 框架深度融合,方便前端开发人员使用 GraphQL 进行数据交互。

    4 年前
  • npm 包 n-is-finite 使用教程

    什么是 n-is-finite n-is-finite 是一个用于检测数字是否是有限数字(finite)的 npm 包,它是 JavaScript 原生方法 isFinite() 的一个封装,但是 n...

    4 年前
  • npm 包 bem-classnames-maker 使用教程

    在前端开发中,我们经常会用到 BEM 命名规范来管理 CSS 类名。但手写 BEM 类名很繁琐,特别是当项目复杂度高时,修改 CSS 类名会变得很困难。为解决这个问题,我介绍一个 npm 包 —— b...

    4 年前
  • npm 包 @pandagardenio/semantic-release-lite 使用教程

    简介 @pandagardenio/semantic-release-lite 是一个轻量级的 semantic-release 插件,可以帮助您更好地管理版本号和发布过程。

    4 年前
  • npm 包 ion-parser 使用教程

    介绍 ion-parser 是一个基于 JavaScript 的解析器,它能够将 Ionic 的 Web 组件库(Ionic Web Components)转换成使用 Ionic Framework ...

    4 年前
  • npm 包 @stembord/bootstrap-overrides 使用教程

    在 Web 开发中,Bootstrap 是常用的前端框架之一,而 @stembord/bootstrap-overrides 是一个特殊的 npm 包,可以帮助我们轻松地自定义 Bootstrap 样...

    4 年前
  • npm 包 grunt-connect-rewrite 使用教程

    在前端开发中,我们经常需要对网站或应用进行重定向或重写,这时候可以使用 npm 包 grunt-connect-rewrite 来完成,本篇文章将介绍如何使用该包完成相关操作。

    4 年前
  • npm 包 jszip-prefix 使用教程

    在前端开发过程中,我们经常需要对一些文件进行打包和压缩,这时候就需要使用一些工具来帮助我们完成这些任务。而 jszip 就是一个非常常用的 JavaScript 压缩库,可以用来创建、读取、修改和提取...

    4 年前
  • npm 包 react-charm 使用教程

    简介 react-charm 是一个在 React 应用中使用颜色和格式化样式的简单库。它是通过使用一些特殊字符类实现的特定文本短语呈现,以替换 HTML 和 CSS 样式。

    4 年前
  • npm 包 socketio-auth-ns 使用教程

    简介 socketio-auth-ns 是一个支持多命名空间的 Socket.IO 认证插件。 学习和指导意义 其中关键词有 Socket.IO、认证插件和多命名空间。

    4 年前

相关推荐

    暂无文章