如何限制搜索引擎疯狂地抓取页面

119.42.239.78一直在调用mt-search.cgi文件,因为使用这个搜索会在MT的后台的Activity Log记录下来。发现并不是简单地搜索,而是疯狂地搜索,并且搜索的内容是重复的。查了一下,发现这个IP是杭州市(阿里巴巴公司) 电信,看样子应该是yahoo的蜘蛛。

很奇怪,我在robots.txt文件里面有限制了/cgi-bin/ 和/tag/目录的访问,但是为什么Yahoo的蜘蛛还在一直抓取?很奇怪。这使我想起了以前的一件事情,以前我让虚拟主机提供商给我备份了一下网站,放在根目录下,名字为wwwroot.rar,啥搜索都没有发现这个文件,但是yahoo却索引了这个文件......

.htaccess限制访问

当然最先想到的是使用.htaccess文件来限制这个IP的访问,在MediaTemple 的KB上找到了下面的代码:
<Files *>
order allow,deny
allow from all
deny from 119.42.239.78
</Files>
我还拿自己的IP试验了一下,发现我自己不能访问了,但是等下去Activity Log看了一下,发现还是有来自119.42.239.78的搜索。

robots.txt限制访问频率

这个我还没试过,不知道行不行。
User-agent: Slurp
Crawl-delay: 10
我觉得这个限制有点悬,我已经禁止让你访问的目录你都访问......

杀手锏,修改mt-search.cgi的权限

实在没办法,就把mt-search.cgi这个文件的权限修改成了444。我已经使用Google的CSE来代替了,所以也无所谓。

P.S. 每到月末,在MediaTemple上就比较难查到GPU的使用情况,今天想去看看yahoo蜘蛛造成的GPU消耗,但是点了几次都进不了这个链接。

2 Comments

  1. 我也觉得奇怪,我在deny from 119.42.239.78后面增加了一条deny from 自己的IP,发现我自己上不去了……403错误。
    但是雅虎的蜘蛛就是deny不掉。
    雅虎蜘蛛光顾非常频繁,但是来自yahoo的搜索却很少。