最近某客户的VPS经常因为负载过高而无法访问。用ras-shell给VPS硬重启后过几十分钟就又因为负载高而无法访问了。
用netstat命令可以看到某些IP频繁访问网站的所有网页,给网站造成的压力很大。用host命令查看这些IP,可以看到这些IP都反向解析到以msnbot开头的一个主机名上,很明显,这是微软的Bing搜索引擎的爬虫,频繁便利网站的所有页面,影响了网站的正常访问。
可以用iptables把这些爬虫的IP段给封掉,这样网站就可以正常访问了。但这只是临时的解决方案,因为封了这些IP也会影响Bing搜索引擎的收录。
在网上搜索这个问题的解决方案,找到这篇文章,是微软官方的:http://www.bing.com/blogs/site_blogs/b/webmaster/archive/2009/08/10/crawl-delay-and-the-bing-crawler-msnbot.aspx ,页面内容在浏览器里面无法正常显示,但在Google的Cache里面还有完整内容,现在翻译如下。
抓取延迟和Bing爬虫,MSNBot
搜索引擎,如Bing,需要定期抓取网站,不仅索引新内容,还要检查网站内容是否更改和删除。Bing给站长们提供了一个方法,能减慢抓取速率,以减轻Web服务器的负载。
使用这个方法并不是必须的,但在网络管理员需要减轻网站压力时确实有效的方法。小网站和不经常更新的网站不必设置抓取延迟。
较大的网站,有很多页面,经常更新,爬虫就来的多,给网站造成的压力就大。
您是否应该设置抓取延迟?
许多因素会影响抓取一个网站,包括(但不限于):
- 网站上的页面总数
- 内容的大小(PDF和Microsoft Office文件的大小通常要远远大于普通的HTML文件)
- 网站内容是否经常更新
- 允许的并发连接数
- 网站的带宽
- 网站排名
上面这些因素综合在一起,决定了爬虫对一个网站抓取的频繁程度。
正是因为有这么多的因素,所以没有明确的,通用的答案告诉你是否应该设置抓取延迟。
这就是说,一些网站管理员,由于技术上的原因,需要设置抓取延迟。因此,我们要解释如何做到这一点,你应该怎样设置,这样做的影响。
在robots.txt文件中设置爬虫的频率
Bing支持网站的robots.txt文件的REP指令,这个robots.txt文本文件应该放在网站的根文件夹下。 修改robots.txt文件是设置MSNBot抓取延迟的唯一有效的方法。
如何设置抓取延迟参数
在robots.txt文件中的抓取延迟指令如下所示:
User-agent: *
Crawl-delay: 10
Crawl-delay就是抓取延迟指令,后面跟一个正整数值。Bing建议使用尽可能的最低值,建议不要高于10,因为这将严重影响Bing机器人的抓取效率。
Crawl-delay设置 | 索引更新速度 |
---|---|
不设置 | 正常 |
1 | 较慢 |
5 | 慢 |
10 | 很慢 |
转载请注明:爱开源 » 减轻Bing爬虫MSNBot给网站造成的压力