🥳加入Scrapeless 社区申请免费试用以访问我们强大的网页抓取工具包!
返回博客

如何使用 Puppeteer 绕过验证码

Ava Wilson
Ava Wilson

Expert in Web Scraping Technologies

26-Sep-2024

自动化网页抓取和爬取对于从网站收集和分析大规模数据至关重要。然而,由于 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 Copy
npm i puppeteer

将 Puppeteer 库添加到您创建的 Node.JS 文件中。

language Copy
const puppeteer = require('puppeteer');

使用以下代码创建一个新页面和一个无头浏览器实例:

language Copy
(async () => {
  // Create a browser instance
  const browserObj = await puppeteer.launch();

  // Create a new page
  const newpage = await browserObj.newPage();

由于需要桌面设备来截取快照,我们可以使用以下代码调整视窗大小:

language Copy
  // 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,我们仅访问公开数据,同时严格遵守适用的法律、法规和网站隐私政策。 本博客内容仅用于演示目的,不涉及任何非法或侵权行为。 对于使用本博客或第三方链接的信息,我们不做任何保证,也不承担任何责任。 在参与任何抓取活动之前,请咨询您的法律顾问并查看目标网站的服务条款或获取必要的权限。

最受欢迎的文章

目录