如何使用 Puppeteer 绕过验证码

Expert in Web Scraping Technologies
自动化网页抓取和爬取对于从网站收集和分析大规模数据至关重要。然而,由于 CAPTCHA 等反机器人工具,自动化在线访问变得越来越困难。
作为安全预防措施,许多网站经常加载 CAPTCHA 或阻止屏幕。如果您的自动化抓取器能够以某种方式在网站看来像人类一样,它可能会避免在目标网站上加载阻止屏幕或 CAPTCHA。因此,您的抓取器可能会完成抓取任务并避免 CAPTCHA 和 reCAPTCHA 挑战。
但是网站如何让抓取器看起来像人类呢?让我们来调查一下。
教程:使用 Puppeteer 绕过 CAPTCHA
您必须弄清楚如何阻止 CAPTCHA 加载,才能访问被阻止网站上的内容。Puppeteer 可以帮助我们做到这一点。它是一个 Node.JS 包,它为 Chrome 和 Chromium 的 DevTools 协议管理提供了一个易于使用的 API。您可以在完整的 Chrome/Chromium 模式下运行它,而不是使用 Puppeteer 的普通无头模式。
为什么 Puppeteer 独自不能满足需求?
如果您使用 Puppeteer 自行尝试自动访问受 CAPTCHA 保护的网站,会发生什么?目标网站会通知您自动访问并显示阻止屏幕或 CAPTCHA 测试。
让我们使用这些步骤来确认它:
您的计算机上必须安装 Node.JS。使用以下 npm 命令在新建的 Node.JS 项目中安装 Puppeteer:
language
npm i puppeteer
将 Puppeteer 库添加到您创建的 Node.JS 文件中。
language
const puppeteer = require('puppeteer');
使用以下代码创建一个新页面和一个无头浏览器实例:
language
(async () => {
// Create a browser instance
const browserObj = await puppeteer.launch();
// Create a new page
const newpage = await browserObj.newPage();
由于需要桌面设备来截取快照,我们可以使用以下代码调整视窗大小:
language
// Set the width and height of viewport
await newpage.setViewport({ width: 1920, height: 1080 });
网页大小通过 setViewPort() 函数设置。您可以根据您的设备规格调整它。
接下来,访问您认为受 CAPTCHA 保护的网站的 URL,并截取其屏幕截图。
使用 Puppeteer-stealth 绕过 CAPTACHA
使用 Puppeteer 安装 Stealth 扩展程序将允许您增强其功能。Stealth 扩展程序凭借其一系列功能,可以解决安全网站用来识别人工访问尝试的大多数技术。
您的 Puppeteer 的自动化无头访问可以变得如此“人性化”,以至于许多网站无法分辨出区别。因此,对于某些网站而言,由于基于 Stealth 的访问,CAPTCHA 无法加载。因此,您可以让您的 Puppeteer 脚本自动运行并访问隐藏在 CAPTCHA 背后的数据。
注意:本教程中演示的所有绕过技术的演示仅用于教育目的。
厌倦了不断被CAPTCHA阻碍你的网页抓取工作?
向您强烈推荐 Scrapeless - 性能强大的一体化网页抓取解决方案。
Scrapeless:目前最好的一体化在线抓取解决方案!
借助我们强大的工具套件,可以轻松发挥数据抓取的全部潜力:
最佳 CAPTCHA 解码器
自动解决复杂的 CAPTCHA 问题,确保持续而丝滑地抓取网页数据。
免费试用开启中!
总结
网页自动化项目可能会受到 CAPTCHA 问题的阻碍;但是,通过使用 Puppeteer Stealth 和 Scrapeless 的 CAPTCHA 求解器,您可以绕过 CAPTCHA 并简化您的自动化流程。如果您有兴趣了解其他网页抓取库,您还应该阅读这篇文章,了解如何使用 Playwright 绕过 CAPTCHA。始终牢记遵守法律并在开始任何类型的抓取活动之前寻求法律建议。
为了充分利用 Scrapeless 的 CAPTCHA 求解器,我们建议您注册免费试用并阅读我们的详细说明。
在Scrapeless,我们仅访问公开数据,同时严格遵守适用的法律、法规和网站隐私政策。 本博客内容仅用于演示目的,不涉及任何非法或侵权行为。 对于使用本博客或第三方链接的信息,我们不做任何保证,也不承担任何责任。 在参与任何抓取活动之前,请咨询您的法律顾问并查看目标网站的服务条款或获取必要的权限。