这是反搔刮术可行使用robots.txt抓取延时?(Is this Anti-Scraping te

2019-08-01 14:32发布

我想,以防止网络刮刀从agressively刮我的网站上百万的网页。 我想通过返回“503服务不可用” HTTP错误代码访问的页每分钟产生异常数量的机器人做到这一点。 我并没有与形式,垃圾邮件发送者的麻烦,只需用刮刀。

我不希望搜索引擎蜘蛛不断收到错误。 我的倾向是设置一个robots.txt抓取延迟,这将确保蜘蛛在我的503准入门槛的若干页每分钟。

这是一个可以接受的解决方案? 是否所有主要的搜索引擎支持抓取延迟指令? 难道SEO产生负面影响? 是否有任何其他的解决方案或建议?

Answer 1:

我建立了一个小刮刀,而这需要时间最长的部分是永诺试图找出该网站的布局是什么刮不能及的。 我可以告诉你的是,改变的div和内部布局将是毁灭性的所有刮削器。 像ConfusedMind已经指出。

因此,这里是你一个小的文本:

速率限制
进行速率限制的IP意味着你只允许IP一定量的在固定的时间内搜索阻止它之前。 这似乎肯定的方式防止最坏的罪犯,但实际上它不是。 问题是,你的用户有很大一部分有可能代理服务器或者是他们经常与成千上万的其他用户共享大型企业网关来通过。 如果速率限制代理的IP限制时,从代理不同的用户使用你的网站会容易引发。 仁者机器人还可以在高于正常运行速率,触发自己的极限。

一个解决方案是当然使用白名单,但是与该问题是,你需要不断手动编译因为IP位址随时间变化保持这些列表。 不用说,数据刮刀只会降低他们的费率或在多个IP分配搜索:■一旦他们意识到你是速率限制某些地址。

为了速率限制是有效的,而不是望而却步,我们通常建议大家调查阻拦他们之前超出流量网站的大用户。

验证码测试
验证码测试是试图阻止在网站刮的常用方法。 这个想法是有一个画面显示在一台机器无法读取,但人类可以(见图片)一些文本和数字。 这种方法有两个明显的缺点。 首先,如果他们要填写一个以上的人机识别系统测试可能是恼人的用户。 其次,网络刮削器可以很容易地手工做测试,然后让他们的脚本运行。 除了这几个Captcha测试的大用户都有过它们的实现受到影响。 混淆源代码

一些解决方案试图混淆http源代码,使其更难机读它。 用这种方法这里的问题是,如果一个网页浏览器可以理解的混淆代码,因此可以在任何其他程序。 模糊处理的源代码也可能干扰与搜索引擎是如何看待和对待自己的网站。 如果你决定实施这个你应该非常小心去做。

黑名单
包括IP黑名单的:已探明的刮网站是不是一个真正的方法本身,因为你仍然需要以黑名单他首先检测的刮刀。 即便如此它仍然是因为IP是钝器:■往往随着时间而改变。 最后,你将最终阻止合法用户使用此方法。 如果您仍然决定实施黑名单,你应该有一个过程来检讨他们至少每月。



文章来源: Is this Anti-Scraping technique viable with Robots.txt Crawl-Delay?