返回博客

如何在不被阻止的情况下抓取网站

Maryia Stsiopkina

2022-03-091 min read

网络爬取和网络抓取对于公共数据收集至关重要。电商企业使用网络抓取工具从不同网站采集最新数据。这类信息随后被用于改进业务和营销策略。 

对于不懂如何爬取一个网站而不被被阻止的人来说,在抓取数据时被列入黑名单是常见问题。我们收集了一些操作技巧,帮助您了解如何在爬取和抓取网站时不被阻止。

网站如何检测网络爬虫?

网页通过检查网络爬虫或网络抓取工具的 IP 地址、用户代理、浏览器参数和一般行为来检测它们。如果网站发现可疑行为,会向您显示 CAPTCHA 验证,然后,因检测到您的爬虫,您的请求也会被阻止。

针对如何不被阻止地爬取网站,我们推荐以下主要实用技巧:

1. 检查机器人排除协议

在爬取或抓取网站前,确保您的目标网站允许您从它们的网页采集数据。检查机器人排除协议 (robots.txt) 文件并遵守网站规则。

即使网页允许爬取,也要尊重网站,不要损害网页。遵循机器人排除协议中的规则,仅在非高峰时段爬取,限制来自同一 IP 地址的请求数量,并在请求之间设置延迟。

但即使网站允许网络抓取,您仍然有可能被封,因此还要遵守其他步骤,这一点很重要。

2. 使用代理服务器

使用 IP 代理爬虫。没有代理,几乎不可能进行网络爬取。选择可靠的代理服务提供商,并根据您的任务在数据中心代理住宅代理之间进行选择。 

在您的设备和目标网站之间使用中介可减少 IP 地址被阻止的可能,确保匿名,并允许您访问您所在地区可能不可访问的网站。例如,如果您在德国,可能需要使用美国代理才能访问美国境内的网页内容。

为获得最佳结果,请选择具有大型爬虫代理 IP 池(爬虫 IP 代理池)和大量位置的代理提供商。 

3. 轮换 IP 地址

使用代理池后,轮换 IP 地址非常重要。 

如果您从相同 IP 地址发送过多请求,目标网站很快会发现您,认为您具有威胁,就会阻止您的 IP 地址。代理轮换使您看似多个不同互联网用户,因此会降低您被阻止的可能性。

Oxylabs 的所有住宅代理都可以轮换 IP,但如果您使用的是数据中心代理,就应该使用代理轮换服务。我们还轮换 IPv4 和 IPv6 代理。

4. 使用真实的用户代理

大多数托管网站的服务器都可以分析爬虫程序发出的 HTTP 请求的标头。这个 HTTP 请求标头称为用户代理,包含从操作系统和软件到应用程序类型及其版本的各种信息。

服务器可以轻松检测可疑的用户代理。真实用户代理包含由自然访问者提交的常用 HTTP 请求配置。为避免被阻止,请确保将您的用户代理定制为看似自然用户的模式。 

由于网络浏览器发出的每个请求都包含一个用户代理,因此应该经常切换用户代理。 

使用最新和最常用的用户代理也很重要。如果您使用有 5 年历史的用户代理从不再受支持的 Firefox 版本发出请求,会引发很多警示信号。您可以找到互联网上的公共数据库,这些数据库会告诉您哪些是当今最受欢迎用户代理。我们也有自己定期更新的数据库,如果您需要访问这些数据库,请联系我们。

5. 正确设置指纹

反抓取机制变得越来越复杂,一些网站使用传输控制协议 (TCP) 或 IP 指纹来检测机器人。 

在抓取网页时,TCP 会留下各种参数。这些参数是由最终用户的操作系统或设备设置的。如果您想知道如何防止在抓取时被列入黑名单,请确保您的参数设置一致。 

6. 小心蜜罐陷阱

蜜罐是 HTML 代码中的链接。这些链接对自然用户不可见,但网络爬虫却可以检测到它们。蜜罐被用于识别和阻止网络爬虫,因为只有机器人会跟随该链接。 

由于设置蜜罐的工作量较繁重,所以这种技术并没有被广泛使用。但是,如果您的请求被阻止并且爬虫被检测到,请注意您的目标网站可能在使用蜜罐陷阱。

7. 使用 CAPTCHA 解决服务

CAPTCHA 验证是网络爬取过程中面临的最大挑战之一。网站要求访问者解决各种验证难题,从而确认他们是否为真人。当前的 CAPTCHA 验证通常包含计算机几乎无法读取的图像。 

抓取时如何绕过 CAPTCHA 验证?为解决 CAPTCHA 验证,不妨使用专用 CAPTCHA 验证解决服务,或者即用型爬取工具。例如,Oxylabs 的数据爬取工具可以为您解决 CAPTCHA 验证问题,并交付即用型结果。 

8. 改变爬取模式

这里的模式指的是您如何配置爬虫前往浏览网站。如果始终使用相同的基本爬取模式,那么您早晚会被被阻止。 

可以添加随机点击、滚动和鼠标移动,使爬取看起来更难以预测。但您的行为模式不能完全随机。在设置爬取模式时,最好的做法是思考正常用户会如何浏览网站,然后将这种模式应用到工具上。例如,首先访问主页,然后才向内页发送请求,这样比较合理。

9. 降低抓取速度

为了降低被阻止的风险,请放慢抓取速度。例如,您可以在请求之间随机中断,或在执行特定操作之前启动等待命令。

如果由于速率限制而无法抓取 URL 怎么办?

IP 地址速率限制意味着,目标网站在特定时间内允许在网站上执行的操作数量有限。  为避免请求遭到限制,请尊重网站并降低抓取速度。

10. 在非高峰时段爬取

大多数爬虫浏览页面的速度比正常用户快得多,因为它们实际上并没有阅读内容。因此,一个不受限制的网络爬虫工具对服务器负载的影响比任何正常互联网用户都要大。反过来,在高负载时段爬取可能会由于服务速度下降而对用户体验产生负面影响。

寻找抓取网站的最佳时段因具体情况而异,但在午夜之后选择非高峰时段(针对服务根据本地情况来看)是一个很好的起点。

11.避免图像抓取

图像数据量大,往往还受版权保护。它不仅需要额外带宽和存储空间,而且侵犯他人权利的风险也更高。

此外,由于图像数据量大,它们通常隐藏在 JavaScript 元素中(例如,在延迟加载之后),这将显著增加数据获取过程的复杂性并拖慢网络爬虫本身的速度。为了从 JS 元素中获取图像,必须编写和使用更复杂的抓取过程(这就迫使网站加载所有内容)。

12. 绕过 JavaScript

嵌套在 JavaScript 元素中的数据很难获取。网站使用许多不同 JavaScript 功能来显示基于特定用户操作的内容。常见的做法是仅在用户提供一些输入后在搜索栏中显示产品图像。

JavaScript 还可能引发许多其他问题:内存泄漏、应用程序不稳定,有时甚至完全崩溃。动态功能通常会成为负担。  除非绝对必要,否则请避开 JavaScript。

13. 使用无头浏览器

无阻止网络抓取的附加工具之一是无头浏览器。它的工作方式与任何其他浏览器一样,除了无头浏览器没有图形用户界面 (GUI)。 

无头浏览器还可以抓取通过渲染 JavaScript 元素加载的内容。最常用的网络浏览器 Chrome 和 Firefox 都具有无头模式。

总结

收集公共数据时,无需担心如何避免在抓取时被列入黑名单。正确设置浏览器参数,注意指纹识别,并提防蜜罐陷阱。最重要的是,使用可靠的代理,抓取网站时遵循相关规定。然后,您的所有公共数据收集工作都会顺利进行,您将能够使用最新信息来提升业务。

您可以免费试用我们的通用网络爬虫工具的功能,并应用上述技巧。

如果您想知道网络爬取和网络抓取之间的区别,请查看我们的博客文章

关于作者

Maryia Stsiopkina

文案

Maryia Stsiopkina 在 Oxylabs 担任一名初级文案。随着她对写作的热情逐渐发展,她在不同的时间点上不是写令人毛骨悚然的侦探故事,就是写儿童童话故事。最终,她发现自己进入了科技仙境,拥有无数隐藏的领域值得他去探索。在业余时间,她用望远镜观鸟(有些人误以为是跟踪,这就是为什么 Maryia 有时会发现自己处于尴尬的境地),制作花卉饰品,并品尝很多泡菜和绿橄榄。

Oxylabs博客上的所有信息均按“原样”提供,仅供参考。对于您使用Oxylabs博客中包含的任何信息或其中可能链接的任何第三方网站中包含的任何信息,我们不作任何陈述,亦不承担任何责任。在从事任何类型的抓取活动之前,请咨询您的法律顾问,并仔细阅读特定网站的服务条款或取得抓取许可。

在这篇文章


  • 网站如何检测网络爬虫?

  • 1. 检查机器人排除协议

  • 2. 使用代理服务器

  • 3. 轮换 IP 地址

  • 4. 使用真实的用户代理

  • 5. 正确设置指纹

  • 6. 小心蜜罐陷阱

  • 7. 使用 CAPTCHA 解决服务

  • 8. 改变爬取模式

  • 9. 降低抓取速度

  • 10. 在非高峰时段爬取

  • 11.避免图像抓取

  • 12. 绕过 JavaScript

  • 13. 使用无头浏览器

  • 总结

选择Oxylabs®,业务更上一层楼


隐私政策

oxylabs.cn© 2024 保留所有权利©