9年绕过防刮技术的2021种行之有效的方法

会员披露: 完全透明-我们网站上的某些链接是会员链接,如果您使用它们进行购买,我们将为您赚取佣金而没有任何额外费用(无任何费用!)。

网页抓取 是一种检索大量数据并将其存储在系统中的技术。 一些网站不鼓励 网络抓取。 此类网站仍可以被抓取,但要负责任,以免对被抓取的网站产生不利影响。 Web搜寻器可以快速而深入地检索数据,因此“保管”目标网站非常重要。

 大多数网站可能没有 防刮技术 因为那样会妨碍普通用户访问该网站。 但是,仍有一些站点仍在阻止抓取,因为它们不希望公开访问其数据。

本文讨论了网站如何知道它是蜘蛛,而不是网站上的人机交互,以及如何克服这些障碍。

网站如何检测网络抓取?

有一些机制可以使网站检测正在运行的搜索引擎机器人。 一些机制是:

  1.       来自单个客户端或其他客户端的流量异常或下载率很高 IP地址 在有限的时间内
  2.       在网站上检测不是由人执行的重复性任务。 人类不会一直执行相同的任务。
  3.       使用蜜罐进行检测,这些蜜罐通常对于普通用户是不可见的。

9年绕过防刮擦技术的2021种行之有效的方法清单

要克服检测并绕过防刮技术,请遵循以下实践:

1)遵守robots.txt文件

网站所有者有权决定是否允许其网站爬网/爬网。 一些网站禁止漫游器抓取,并允许其他网站抓取其网站。 网络抓取工具在抓取时应坚持使用robot.txt文件访问网站。 该文件具有一组您应遵守的规则。 关于刮刮的频率以及刮刮的页面。 

绕过防刮技术

可以在网站URL上找到Robots.txt文件。

如果它包含如下所示的行,则表示该站点不喜欢并希望被剪贴。

用户代理:*

不允许:/ 

由于大多数网站都希望在Google(网站的最大抓取工具)上列出,因此所有者确实允许爬网程序访问这些网站。 

2)慢速整理有助于

如果您使用的是漫游器,它们会非常快地获取和抓取数据,就像在30秒内发出请求一样快。 这对人类来说是不寻常的。 因此,网站很容易检测到刮板正在工作。 快速抓取意味着网站接收到过多的请求并使网站无响应。

为了使您的蜘蛛看起来真实,请尝试模仿人类行为。 

举个例子,请在请求之间添加一些随机的编程性睡眠调用,或者在抓取特定数量的页面后设置一些延迟。 基本上,您要抓取的网站应被视为友善的网站,并且不会对其造成太大的负担。

如果您过多地加载网站,则可以使用自动节流机制来自动限制爬网速度。 网站环境也会随着时间而变化。 因此,在运行一些线索后,将机器人调整为最佳爬行速度。

3)更改草稿样式

人类倾向于给任务带来变化,而不是重复进行。 它们在刮擦时显示随机动作。 另一方面,机器人具有相同的爬行模式,因为它们被编程为这样做。 除非进行编程,否则它们不会更改图案。

网站有 防爬行 可以轻松检测到机器人参与抓取或人类正在抓取的机制。 因此,在程序或鼠标移动中加入一些随机单击,使蜘蛛看起来像人。 更改抓取模式是一种有效的方法 防刮技术。 

4)旋转IP和代理

使用相同的IP地址发送多个请求将 封锁您的IP位址。 抓取时可以看到您的IP地址。 一个网站将很容易知道您在做什么。 为避免这种情况,请使用多个IP地址。 一个 来自代理服务器的请求 很难被发现。 使用随机 IP地址 对于IP地址池中的每个请求。

使用IP地址进行防刮

有很多方法可以更改外发IP。 VPN,共享代理或TOR是最好的方法。 另外,有商业提供商提供自动IP轮换的服务。 该技术还可以将负载分配到各个出口点。

由于这也是网站众所周知的技术,因此它们已经阻止了一些大规模使用的IP范围,例如AWS。

5)用户代理轮换

用户代理是一种告诉服务器正在使用哪个Web浏览器的工具。 如果您尚未设置用户代理,则网站将不允许您查看其内容。 要了解您的用户代理,您只需输入“我的用户代理在Google搜索栏中是什么”即可。

您还可以在以下位置检查用户字符串 WhatsMyUserAgent.

来自浏览器的每个请求都包含一个导致检测到机器人的用户代理标头。 因此,要使用户代理显得真实并逃避检测,就是要伪造用户代理。

欺骗用户代理:

创建一个用户代理列表,并针对每个请求选择一个随机的用户代理,以免被阻止。 将您的用户代理设置为通用的Web浏览器,而不是默认的用户代理。

将您的用户代理设置为通用的Web浏览器,而不使用默认的用户代理(例如wget / version或urllib / version)。 你甚至可以 假装是Google Bot:Googlebot / 2.1,如果您想玩得开心!

6)当心网站更改布局

一些网站具有动态布局,并且会不断对其进行更改,从而使其变得棘手或刮擦。 例如,前20页将具有特定的格式,而其余页面的布局可能会发生变化。

要从此类网站抓取数据,请使用XPaths或CSS选择器 数据挖掘。 如果您没有使用它们,请检查布局上的差异,并在代码中添加一个条件以不同方式抓取这些页面。

7)使用无头浏览器

网站根据所使用的浏览器显示不同的内容。 例如,在Google搜索结果中,如果浏览器具有高级功能,则它可能会显示“丰富”的内容,这意味着该内容将是动态的和样式化的,并且严重依赖Javascript和CSS。

问题是当做任何一种 数据挖掘,内容是由JS代码呈现的,而不是服务器传递的原始HTML响应。

在这种情况下,可以使用无头浏览器防止阻塞。 无头浏览器意味着它们在桌面上不可见。 因此没有图形界面。 这意味着没有图形界面。 无需与元素进行交互,您可以使用命令行界面自动执行所有操作。 这可以帮助您在 网页抓取。

8)保护自己免受蜜罐陷阱的侵害

网站会竭尽全力防止黑客入侵。 他们设置了蜜罐来吸引黑客入侵,并检测网站上是否存在任何黑客入侵尝试。 它通常是模仿真实系统行为的应用程序。 例如,某些网站安装的蜜罐链接对于普通用户是不可见的,但可以由以下用户访问 刮板机 只。

为避免进入此陷阱,请确保您打开的链接具有适当的可见性和nofollow标签。 跟随链接时,请始终注意该链接具有适当的可见性且没有nofollow标记。 一些用于检测蜘蛛的蜜罐链接将显示CSS样式:无或伪装成颜色以与页面的背景色融合。

这种检测显然不容易,并且需要大量的编程工作才能正确完成,因此,该技术在服务器端,机器人端或爬虫端等任一侧均未广泛使用。

9)在登录后隐藏

有一些网站不允许登录权限。 例如,Facebook和确实。

受登录保护的页面在访问该页面的每个请求中都需要更多信息或cookie。 这样,目标网站就有机会查看来自 代理服务器 从而屏蔽了您的帐户。

因此,建议您避免刮擦已登录的网站,因为这样很容易被您阻止。 要抓取此类网站,您可以在需要身份验证时模仿人工浏览器,以便获取目标数据。

如何解决网页爬虫检测?

建造蜘蛛时,花一些时间研究一下 防刮擦 机制是网站用户,然后对蜘蛛进行相应编程。 从长远来看,这将导致更好的数据结果并构建强大的蜘蛛。 

您如何确定某个网站是否阻止了您?

爬网时在网站上查找以下警报。 如果您看到其中任何一个,则表明您被禁止或阻止。

          验证码页面

          异常的内容交付延迟

          频繁出现HTTP 404、301或503错误响应

另外,如果出现这些HTTP代码,则认为自己已被阻止。

          301暂时移动

          401未经授权

          故宫403

          404未找到

          408请求超时

          429请求太多  

          503服务不可用

阅读最佳博客@ 如何通过代理打开阻止的网站?

快速链接:

结论:B的行之有效的方法ypass防刮技术

绕过防刮技术,基本规则保持不变,即对目标网站友好并使用 代理服务器。 不要让其服务器无法处理的请求超载。 建立一个稳定而强大的机制/蜘蛛,以有效地爬网和收集数据,而不是被阻塞。 这些要点将帮助您建立自己的解决方案 防刮擦。

您是数据科学家,市场营销人员还是发布者,他们使用许多技术绕过反抓取网站来获取相关数据? 告诉我们您使用机器人的经验吗?

 

 

发表评论