我最近一直在抓取很多网站的内容,并且很惊讶到目前为止没有网站能够提出太多阻力。理想情况下,我正在研究的网站不应该如此容易地收获。所以我想知道什么是阻止机器人收集网络内容的最佳方法。 明显的解决方案:
可以采取哪些措施来捕获机器人活动?如何才能使数据提取变得困难?如何为他们提供糟糕的数据呢?
关于SEO的关注,有没有办法限制对某些数据块的访问(有点像<nofollow>
文本块?)
只是寻找想法,没有正确/错误的答案
答案 0 :(得分:4)
使用客户端解密/解码方案。基本上发送一些编码数据然后依赖JavaScript将其解码为可读的东西。爬虫会得到你的内容但对他们来说没用(至少在你的网站变得如此之大以至于人们会专门针对它)之前。
但是,你为什么要这样做呢?您不希望网站被搜索引擎编入索引吗?
答案 1 :(得分:2)
试图阻止webscrapers并不容易。如果没有一个复杂的,不断发展的解决方案,你所能做的只是提高难度,并希望他们没有足够的决心继续前进。你可以做的一些事情是:
同样重要的是要注意,您应该将搜索引擎列入白名单以避免搜索引擎优化/流量丢失。您可以通过查看其用户代理并将其与其IP的whois进行比较,将大多数搜索引擎列入白名单。
为了完全披露,我是Distil Networks的联合创始人,我们提供防刮解决方案即服务。这让我有偏见,因为我不相信你的问题有一个静态的答案,也就是说,你不能做一件事而且停下来。这是一场军备竞赛,你将永远不得不继续战斗。
答案 2 :(得分:1)
通过ip跟踪活动(可能与用户代理结合)并尝试通过页面调用之间的延迟来检测机器人。在一定时间间隔内要求的网址太多 - 开始发送修改后的内容,重定向或任何您想到的内容。
答案 3 :(得分:1)
javascript 在客户端上设置 Cookie 。在服务器端,检查是否存在此cookie,并仅在存在cookie时提供您的内容。
如果没有cookie,请发送包含javascript的页面,该页面设置cookie并重新加载页面。
这应该会阻止所有不执行任何javascript的自动化网络工具。
答案 4 :(得分:1)
如果抓取工具真的想要,您无法阻止抓取,但您可以取笑它们。
检测机器人的方法
可能的惩罚:
答案 5 :(得分:0)
实施 Captcha ,仅允许人类查看您的网站。