如何避免CAPTCHA和reCAPTCHA

如何避免CAPTCHA验证码和reCAPTCHA

如果您是网络抓取开发人员,您就会知道遇到验证码时的挫败感。它们的故障率低于 10%,并且每年都在发展,成为最可靠的反机器人措施之一。

在本文中,您将学习七种行之有效的方法来避免在网络抓取时避免 CAPTCHA 和 reCAPTCHA:

  1. 跳过隐藏的陷阱
  2. 使用真正的 HTTP 标头
  3. 旋转标题
  4. 使用旋转代理更改 IP 地址
  5. 实施无头浏览器
  6. 禁用自动化指标
  7. 让你的刮板看起来像一个真正的用户

本指南还将涵盖基础知识,例如 CAPTCHA 类型及其工作原理,以便您更好地了解技术以避开它们。

什么是验证码?

CAPTCHA(完全自动区分计算机和人类的公共图灵测试)是您在加载请求的页面之前必须解决的中断,并以不同形式的挑战出现。网站使用它们通过测试最终用户的准确性来确定您是实际用户还是机器人,并且它们通常具有时间敏感性元素,例如时间到期。

small_CAPTCHA_example_445b57ed8f

一个重要的考虑因素是测试不应损害用户体验。这就是为什么他们不使用复杂的生物识别技术和面部识别技术进行验证的原因。

验证码的类型

您将遇到的障碍类型如下所述。

文本验证码

这些挑战使用文本字符来提示用户键入图像中显示的字符串。

small_text_CAPTCHA_043e39122a

3D 验证码

这项新技术是文本挑战的演变,使用了计算机更难识别的 3D 字符。

3d_captcha_8f4e29c1ff

数学挑战

此方法会触发一个数学方程式供用户求解。MATH_captcha_8db6559027

 

图片验证码

在这种情况下,用户必须识别网格图像中的特定对象。

medium_image_captcha_60ab0a02b2

隐形和被动验证码

这些更难识别,因为它们隐藏在代码中。

在不可见测试的情况下,想象一个表单,在该表单中单击提交按钮将运行 JavaScript 挑战,以验证您的浏览器是否像人类使用的常规浏览器一样运行。

对于被动验证码,它们是基于时间的检查。例如,如果一个人打字需要超过两秒,而你只用了 0.1 秒,那就很可疑了。

这两种方法的组合是可能的并且经常被使用。

验证码如何工作?

为避免 CAPTCHA 和 reCAPTCHA,您需要了解何时可能会提示质询。有以下三种情况:

  • 短时间内来自同一用户的流量异常激增。
  • 可疑的交互,例如在不滚动的情况下访问许多页面。
  • 随机因为一些具有高安全措施的防火墙检查以防万一。

查看我们关于网络抓取最佳实践抓取而不会被阻止的指南。

抓取时如何避免 CAPTCHA 和 reCAPTCHA?

网络抓取工具使用各种方法来避免验证码,以下是经过最充分验证的七种方法:

1.避免隐藏的陷阱

蜜罐陷阱是对真实用户隐藏但对机器人出现的链接。因此,如果您单击它们,您将被标记为刮板。

它们通常具有display: none或 之类的属性visibility: hidden,表单也可以这样做。为了远离问题,跳过隐藏的元素以避免蜜罐陷阱。

2.使用真正的标题

您的请求标头包含有关您的客户端的特征信息,因此它们可以用作网络抓取工具的指示器。

small_user_agents_42f66b8574

流行的无头浏览器,例如 Selenium 和 Puppeteer,具有独特的User-Agent 标头,您应该将其替换为人类使用的真实标头。

3.旋转标题

太多具有相同 HTTP 标头的请求是可疑的,不是吗?真正的用户不会在五分钟内访问 1,000 个页面。

因此,您应该旋转标题以避免引起注意。从网站的角度来看,你们似乎是不同的用户。

4.使用旋转代理

使用真正的标头并轮换它们是不够的,因为网站可以通过分析源 IP 地址来检测网络抓取工具。因此,如果您在不更改 IP 地址的情况下轮换标头集,它也会看起来很可疑。

您需要做的是同时轮换标头和您的 IP 地址,最好是住宅地址。幸运的是,您可以查看我们关于如何在 Python 中轮换代理的分步指南。

5. 实现无头浏览器

浏览器自动化工具,例如 Selenium 和 Puppeteer,有助于避免验证码,因为它们模拟了与网站的类人交互。在网络抓取中,它们以无头模式使用,它删除了图形界面并节省了资源。

6.禁用自动化指标

大多数基于浏览器的工具都有特定的指示器和 WebDriver 标志,可以表明您是机器人。例如,Selenium 和 Puppeteer 的标志默认navigator.webdriver设置为 。true

无头浏览器的插件,例如 Puppeteer-stealth,实现了许多技术来擦除这些痕迹。查看我们关于使用 Puppeteer 避免检测的教程,了解它们是如何实现的。

7. 让你的爬虫看起来像一个真正的用户

模仿人类行为和避免模式对于避免被发现很重要。网站跟踪用户导航、悬停元素,甚至点击坐标来分析用户行为。

您可以实施的行动包括:

  • 随机化动作,例如滚动。
  • 点击。
  • 打字
  • 在操作之间使用随机时间间隔。

通过遵循这些行为模式,网络抓取工具可以避开验证码和其他形式的网站保护。

要了解更多信息,请查看我们的防刮技术指南。

结论

我们已经了解了如何在网络抓取时避免使用 CAPTCHA 和 reCAPTCHA。例如,您应该通过跳过隐藏链接来避免蜜罐陷阱,还应结合您的 IP 轮换真实的 HTTP 标头,并实施无头浏览器以通过随机操作模仿人类行为。

类似文章