减轻Bing爬虫MSNBot给网站造成的压力

Posted by zuzhihui in 互联网技术 on 2013/04/29 with 1 Comment

最近某客户的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 很慢

Back to Top

2007-2017 © 北京瑞豪开源科技有限公司 京ICP备13004995号-2