gpt4 book ai didi

web-scraping - 这种反抓取技术是否适用于 Robots.txt Crawl-Delay?

转载 作者:行者123 更新时间:2023-12-04 05:28:07 24 4
gpt4 key购买 nike

我想防止网络抓取工具在我的网站上主动抓取 1,000,000 个页面。我想通过向每分钟访问异常页数的机器人返回“503 服务不可用”HTTP 错误代码来做到这一点。我对表单垃圾邮件发送者没有问题,只是在使用爬虫。

我不希望搜索引擎蜘蛛收到错误。我的倾向是设置一个 robots.txt crawl-delay,这将确保蜘蛛在我的 503 阈值下每分钟访问一些页面。

这是一个可以接受的解决方案吗?是否所有主要搜索引擎都支持 crawl-delay 指令?它会对SEO产生负面影响吗?有没有其他解决方案或建议?

最佳答案

我已经构建了一些爬虫,花费最长时间的部分总是试图弄清楚站点布局应该刮什么而不是什么。我可以告诉你的是,改变 div 和内部布局对所有刮刀来说都是毁灭性的。就像 ConfusedMind 已经指出的那样。

所以这里有一个小文字给你:

限速
对 IP 进行速率限制意味着在阻止它之前,您只允许该 IP 在固定时间范围内进行一定数量的搜索。这似乎是防止最严重的罪犯的可靠方法,但实际上并非如此。问题是您的大部分用户可能来自代理服务器或大型企业网关,他们经常与成千上万的其他用户共享这些网关。如果您对代理的 IP 进行速率限制,那么当来自代理的不同用户使用您的站点时,该限制很容易触发。仁慈的机器人也可能以比正常情况更高的速度运行,从而触发您的限制。

一种解决方案当然是使用白名单,但问题是您需要不断手动编译和维护这些列表,因为 IP 地址会随着时间而变化。毋庸置疑,一旦数据抓取器意识到您正在限制某些地址的速率,它们只会降低其速率或通过更多 IP 分配搜索。

为了使速率限制有效并且不妨碍网站的大用户,我们通常建议在阻止他们之前调查每个超过速率限制的人。
验证码测试
验证码测试是一种尝试阻止网站抓取的常用方法。这个想法是让图片显示一些机器无法读取但人类可以读取的文本和数字(见图)。这种方法有两个明显的缺点。首先,如果用户必须填写多个,验证码测试可能会让用户感到厌烦。其次,网络爬虫可以轻松地手动进行测试,然后让他们的脚本运行。除此之外,验证码测试的几个大用户的实现也受到了损害。
混淆源代码

一些解决方案试图混淆 http 源代码,使机器更难阅读它。这种方法的问题在于,如果 Web 浏览器可以理解混淆的代码,那么任何其他程序也可以。混淆源代码也可能会干扰搜索引擎如何查看和处理您的网站。如果您决定实现此操作,则应非常小心。
黑名单
由已知用于抓取站点的 IP:s 组成的黑名单本身并不是一种真正的方法,因为您仍然需要先检测抓取器才能将其列入黑名单。即便如此,它仍然是一种钝器,因为 IP 往往会随着时间而改变。最后,您最终将使用此方法阻止合法用户。如果您仍决定实现黑名单,则应制定至少每月审查一次的程序。

关于web-scraping - 这种反抓取技术是否适用于 Robots.txt Crawl-Delay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com