如何利用robots限定yahoo蜘蛛爬行
yahoo蜘蛛频繁爬行给公司系统部带来了巨大的麻烦,因为蜘蛛的频繁爬行直接导致系统反应过慢,那么如何才能降低yahoo的蜘蛛爬行抓取速度呢?
在yahoo的帮助定义:
在robots.txt 里,YST有一个特定的扩展名,可以通过它对我们的抓取程序设定一个较低的抓取请求频率。您可以加入Crawl-delay:xx指示,其中,“XX”是指在crawler程序两次进入站点时,以秒为单位的最低延时。如果crawler频率对您的服务器是一个负担,您可以将这个延时设定为任何您认为恰当的数字,例如1或10。
例如,您想设定一个2秒的延时,语句如下:
User-agent: Slurp
Crawl-delay: 2
他们给出的帮助建议是设定为2,这个设定为2用来告诉Slurp蜘蛛2次访问之间的间隔,单位是秒.但对于大型网站设定2秒肯定是不合适的,因为雅虎美国和雅虎中国有2套蜘蛛在运行,每个蜘蛛都是遵循Crawl-delay间隔的,因此为了进一步降低Slurp压力,希望达到10秒一次请求的频道 实际的Crawl-delay配置就要*2。
Slurp来源于40多个IP网段,同网段内的蜘蛛协调抓取频度。因此:实际的Slurp设置,需要设置为10*40 = 400秒,才能达到期望的Slurp每10秒访问一次频度。
那么要想限定YAHOO蜘蛛的爬行,那么robots.txt可以写成
User-agent: *
Disallow:
User-agent: slurp
Disallow:
Crawl-delay: 100
定义说明:
1. 添加了User-agent: *属性。允许所有蜘蛛访问。
2. 更正了Slurp数值,1000为25秒,如果需要,可以设定成10000
3. 添加了sitemaps地址,将b2b网站的新旧sitemasps加入robots,便于蜘蛛抓取.
本说明来源于雅虎官方日志:
如何控制Yahoo! Slurp蜘蛛的抓取频度
http://ysearchblog.cn/2006/07/yahoo_slurp.html
26条评论▼