如果他不遵守robots.txt的规则,如何阻止蜘蛛

时间:2015-03-13 13:46:29

标签: php robots.txt

如果他们不遵守robots.txt文件中写入的规则,是否有办法阻止抓取工具/蜘蛛搜索漫游器。如果是,我在哪里可以找到更多关于它的信息?

我更喜欢一些.htaccess规则,如果不是那么PHP。

1 个答案:

答案 0 :(得分:1)

有很多方法可以阻止大多数机器人抓住您的网站。

除了通过用户代理和已知IP地址进行过滤之外,您还应该实现行为驱动的阻止。这意味着,如果它像爬虫一样阻止它。

您可以找到多个搜索引擎机器人列表here。但是大多数大玩家都遵守robots.txt。

所以另一个相当大的部分是由于机器人的行为阻塞。当您使用像Laravel或Symfony这样的框架时,事情变得越来越复杂,因为您可以轻松地设置在每次加载页面之前执行的过滤器。如果没有,您必须实现在每次加载页面之前调用的函数。

现在有一些事情需要考虑。蜘蛛通常尽可能快地爬行。因此,您可以使用会话来测量给定时间跨度内页面加载和页面加载之间的时间。如果金额X超过,则客户端被阻止。

可悲的是,这种方法正确地依赖于机器人处理会话/ cookie,但情况可能并非总是如此。

另一种或另外一种方法是测量来自给定IP地址的页面加载量。这很危险,因为可能有大量用户使用相同的IP地址。所以这可能会排除人类。

我能想到的第三种方法是使用某种蜜罐。创建指向特定网站的链接。该链接必须是计算机可见的,而不是人类可见的。用一些CSS隐藏它。如果某人或某物使用隐藏链接访问该页面,您可以(接近)确定它是一个程序。但请注意,有些浏览器插件会预加载他们可以找到的每个链接。所以你不能完全依赖它。

根据您网站的性质,最后一种方法是隐藏捕获背后的完整网站。这在可用性方面是一个严格的措施,因此请仔细确定它是否适用于您的用例。

然后有一些技术,如使用Flash或复杂的Javascript,大多数机器人不理解,但它很恶心,我不想谈论它。 ^^

最后,我现在得出结论。

通过使用写得很好的robots.txt,大多数机器人都会让你独自一人。除此之外,你应该结合预先提到的所有或部分方法来吸引坏人。

毕竟,只要您的网站公开可用,您就永远无法逃避专门为您的网站量身定制的定制机器人。当浏览器可以解析它时,机器人也可以这样做。

对于更有用的答案,我需要知道你想隐藏什么以及为什么。