2011-02-08 129 views
0

我最近一直在抓取很多网站的内容,并且很惊讶到目前为止没有网站能够提出很多抵制。理想情况下,我正在处理的网站不应该很容易被收获。所以我想知道什么是阻止漫游者收集您的网页内容的最佳方法。 明显的解决方案:什么是保护内容不被抓取的最佳措施?

  • 的robots.txt(雅右)
  • IP黑名单

什么可以做赶上机器人活动?怎样才能使数据提取变得困难?可以做些什么来给他们提供不好的数据?

关于SEO的关注,有没有办法来限制访问某些数据块(有点像文本<nofollow>块?) 只是看看的想法,没有正确/错误答案

+7

嗯...不要将它连接到互联网? – 2011-02-08 07:19:05

回答

4

使用客户端解密/解码方案。基本上发回一些编码数据,然后依靠JavaScript将其解码为可读的内容。爬行者会得到你的内容,但它对他们来说毫无用处(至少在你的网站变得如此之大以至于人们会专门针对它)。

但是,为什么你要这么做?你不希望网站被搜索引擎收录吗?通过IP(可能与用户代理相结合)

+0

同意你的回答。这种技术的缺点是它会严重影响页面搜索引擎优化**上的网站**,对搜索引擎不好,但如果你的流量不是来自搜索引擎,如Facebook,比它是一个好的解决方案 – Adeel 2011-02-08 07:24:09

+0

听起来不错,特别是,作为我只是想保护特定的信息。机器的其余部分可以被机器人索引。 – Moak 2011-02-08 07:55:24

1

跟踪活动,并尝试通过网页调用之间的延迟来检测机器人。太多的网址在一定的时间间隔内被要求 - 开始发送修改后的内容,重定向,或者您想要的任何内容。

1

已有javascript在客户端设置了一个Cookie。在服务器端,检查是否存在这个cookie,并且只有当cookie存在时才提供您的内容。

如果没有cookie的存在,发送一个网页与设置cookie,并重新加载页面的JavaScript。

这应该防止所有自动化的Web工具,不执行任何JavaScript。

1

你不能阻止爬行如果履带真的想,但是你可以让他们的乐趣。

方法来检测机器人

  • 由用户代理
  • 通过日志分析IP
  • (大多数时候,机器人负载一页每x秒)
  • 使一个JavaScript负载的特定的文件即[yadda.gif]。如果您加载某个网页,但没有下载yadda.gif,你没有启用JS和赔率是,你是一个机器人(或正在使用无脚本)

可能的处罚:

  • 重定向到microsoft.com :-)
  • 设置thoutput率非常低,因此需要永远下载任何东西。你可以用Apache的mod_throughput或PHP的输出缓冲功能
  • 回报胡言乱语为此,devowel内容或类似的东西。
+0

+1惩罚=) – Moak 2011-02-08 07:43:52

0

实施验证码只允许人类查看您的网站。

2

企图阻止webscrapers就不容易。没有一个复杂的,不断发展的解决方案,你所能做的就是提高难度,并希望他们没有足够的决心继续前进。你可以做的一些事情是:

  • 速率限制。请确保您不要基于IP执行此操作,而是使用唯一的会话来避免阻止NAT后面的用户。
  • 强制用户执行javascript访问该页面。有 几种方法可以做到这一点,它使得显著更难 刮,但仍然不是不可能的。有很多的脚本工具 (红宝石,硒等),让您使用一个真正的web浏览器 刮。
  • IP黑名单。阻止代理服务器,TOR,亚马逊ec2等

也值得注意的是,你应该白名单搜索引擎,以避免SEO /流量的损失。通过查看用户代理并将其与IP的whois进行比较,您可以将大多数搜索引擎列入白名单。

完全公开,我的Distil Networks的创始人和我们提供了一个抗刮的解决方案为服务。这使我有偏见,我不相信你的问题有一个静态的答案,也就是说,你不能做一件事,并停止。这是一场军备竞赛,你将永远不得不继续战斗。

相关问题