什么是 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 及其所需的依赖项:
--- ------- --------- --------------- ----------------------------------
使用
----- --------- - -------------------- ----- -------------- - -------------------------- ----- --------------- - --------------------------------------------- ------------------- ----------------- --------- - --- ----------- ------ -------------------- -- --------------- ---- -- ------- -- - ---------------------------------- ------- -- - ----- ---- - ----- ----------------- ----- ------------------------------------------------------- ----- ------------------------------------------ - ----------------- -------------------- --- --------- ------------- ----- ---------------------- ----------------- ---------- ----- ------------------------------- ---------------- ------------------- ----- -------------------------------- ----------------- ----- ------------------------------------- -------------------- --- ------ - - ----- ------------- ----- --------------- --
如上所示的代码实现了以下步骤:
- 启动 Chrome 浏览器。
- 访问 Google reCAPTCHA 演示页面。
- 在 reCAPTCHA 显示出来时解除验证码验证。
- 在“电子邮件”输入框输入值,并在“提交”按钮上单击。
- 检查是否成功提交。
讲解
以上代码分为五个步骤,下面的详细介绍每个步骤的含义。
步骤 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