防止网站数据被抓取和翻录

时间:2008-10-07 07:23:10

标签: web-crawler spam-prevention

我正在寻找建立一个内容网站,其中可能有数千个不同的条目,可通过索引和搜索进行访问。

我可以采取哪些措施来阻止恶意抓取工具从我的网站中删除所有数据?我不太担心SEO,虽然我不想一起阻止合法的抓取工具。

例如,我想过随机改变用于显示我的数据的HTML结构的小部分,但我想这不会真正有效。

12 个答案:

答案 0 :(得分:14)

理论上,人眼可见的任何网站都可能是可以传播的。如果您甚至试图访问,那么根据定义,必须是这样的情况(如果不是机器可读的,那么说话浏览器如何能够提供您的内容)。

您最好的选择是研究水印您的内容,以便至少如果它被撕掉,您可以指向水印并声明所有权。

答案 1 :(得分:10)

之间:

  

我可以采取哪些措施来防止恶意抓取工具被剥夺

和此:

  

我不想一起阻止合法抓取工具。

你要求很多。事实是,如果您要尝试阻止恶意抓取工具,您最终也会阻止所有“好”抓取工具。

你必须记住,如果人们想要抓住你的内容,他们会比搜索引擎机器人付出更多的手动努力......所以你的优先事项是正确的。你有两个选择:

  1. 让互联网的农民偷走你的内容。密切关注它(在谷歌搜索一些更独特的短语)并向ISP发送拆卸请求。除了时间之外,这种选择对你的影响几乎没有。
  2. 使用AJAX和滚动加密从服务器请求所有内容。您需要保持方法更改,甚至是随机的,因此每个页面加载都带有不同的加密方案。但如果有人想破解它,即使这个 也会被破解。你也会放弃搜索引擎的面貌,因此会吸引真实用户的流量。

答案 2 :(得分:5)

实际上,您无法阻止恶意抓取工具 - 您采取的任何措施都可能会损害您的合法用户(除了可能会向robots.txt添加条目以允许检测)

所以你要做的就是计划被窃取的内​​容 - 它很可能以某种形式发生 - 并了解你将如何处理未经授权的复制。

预防是不可能的 - 并且浪费你的时间来做到这一点。

确保网站上的内容不易被复制的唯一可靠方法是拔掉网线...

要检测它,请使用类似http://www.copyscape.com/的内容。

答案 3 :(得分:4)

好的抓取工具会遵循您在robots.txt中指定的规则,恶意的抓取工具则不会。 您可以为坏机器人设置“陷阱”,如下所述: http://www.fleiner.com/bots/
但话又说回来,如果你把你的内容放在互联网上,我觉得对每个人来说都更好,如果它尽可能轻松找到(事实上,你是在这里发布而不是在一些蹩脚的论坛上专家交换

答案 4 :(得分:4)

甚至不要试图在网上设置限制!

这真的很简单。

任何阻止翻录的潜在措施(除了非常严格的robots.txt)都会对用户造成伤害。 Captchas比痛苦更痛苦。检查用户代理会关闭意外的浏览器。使用javascript的“聪明”技巧也是如此。

请保持网络畅通。如果您不想从您的网站上获取任何内容,请不要在那里发布。水印可以帮助您声明所有权,但这只有在您想要在伤害发生后提起诉讼时才有帮助。

答案 5 :(得分:3)

阻止网站被机器翻录的唯一方法是让用户证明他们是人。

您可以让用户执行一项对人类而言很容易且对机器来说很难的任务,例如:CAPTCHA。当用户第一次到达您的站点时,会出现一个CAPTCHA,并且只有在完成后才允许他们继续。如果用户开始在页面之间移动太快,请重新验证。

这不是100%有效,黑客总是试图打破它们。

或者你可以做出慢响应。你不需要让它们爬行,而是选择对人类来说合理的速度(这对机器来说会非常慢)。这只会让他们花费更长的时间来抓取你的网站,但并非不可能。

行。出于想法。

答案 6 :(得分:2)

如果您正在制作公共网站,那么这非常困难。有些方法涉及服务器端脚本以生成内容或使用非文本(Flash等)来最小化翻录的可能性。

但说实话,如果你认为你的内容如此优秀,只需密码保护并将其从公共场所删除。

我的观点是网络的重点是将有用的内容传播给尽可能多的人。

答案 7 :(得分:1)

简而言之:你无法阻止翻录。恶意机器人通常使用IE用户代理,现在相当聪明。如果你想让你的网站可以访问最大数量(例如屏幕阅读器等),你就不能使用javascript或其中一个流行的插件(flash),因为它们会阻止合法用户的访问。

也许你可以有一个cron作业从你的数据库中挑选一个随机片段并用Google搜索来检查匹配。然后,您可以尝试抓住有问题的网站并要求他们将内容删除。

您还可以监控来自给定IP的请求数量,并在它超过阈值时将其阻止,尽管您可能必须将合法机器人列入白名单并且不会对僵尸网络使用(但如果您遇到僵尸网络,也许翻录不是你最大的问题。)

答案 8 :(得分:1)

如果内容是公开的并且免费提供,即使页面视图限制或其他任何内容,您也无能为力。如果您需要注册和/或付款来访问数据,您可能会对其进行一些限制,至少您可以看到谁读取了什么并识别出似乎正在刮擦整个数据库的用户。

但是我觉得你应该更加面对这样一个事实:这是网络的运作方式,没有太多方法可以阻止机器读取人类的能力。将所有内容输出为图像当然会使大多数人失望,但随后该网站不再可访问,更不用说甚至非禁用用户也无法复制粘贴任何东西 - 这可能真的很烦人。

总而言之,这听起来像是DRM /游戏保护系统 - 只会让你的合法用户感到害怕,以防止一些你无法阻止的不良行为。

答案 9 :(得分:0)

尽可能使用人类验证器并尝试使用某种框架(MVC)。网站翻录软件有时无法破解这种页面。同时检测用户代理,至少会减少可能的破解者数量

答案 10 :(得分:0)

您可以尝试使用Flash / Silverlight / Java显示所有页面内容。这可能会阻止大多数爬行者进入他们的轨道。

答案 11 :(得分:0)

我曾经有一个基于User-Agent标头阻止或允许的系统。 它依赖于爬虫设置他们的用户代理,但似乎大多数人都这样做。

如果他们使用假标题来模拟流行的浏览器,那么它将无效。