减少雅虎蜘蛛的抓取频率的方法

9 sec read

如果雅虎的蜘蛛爬行来得太多,抓取频繁了,会影响百度与、谷歌等蜘蛛爬行的来访次数。百度蜘蛛比较智能,如果他发现你的服务器压力过大的话,那么他爬取的时间就会延迟一段时间,服务器压力减少后还会再来爬取的;谷歌管理员工具里面有个功能就是控制蜘蛛抓取速度的一个功能,另一个是谷歌智能判断。也就是说至少两大搜索引擎是不会不友好的抓取的。

雅虎之前收购了很多家搜索引擎公司,像overture等一大批搜索引擎现在都在雅虎旗下,中国一搜也是雅虎旗下的搜索引擎,这些搜索引擎之间彼此是独立的,所以就导致了大量的重复抓取,而雅虎目前有没有解决这一块问题。

考虑到现在雅虎在国内的市场份额及每天带来的流量非常非常的少。一种方法是屏蔽雅虎蜘蛛的抓取,另外一种方法是降低雅虎蜘蛛的抓取频度。降低雅虎蜘蛛抓取频道的方法是在robots.txt中添加Crawl-delay设置,这个设置使告诉雅虎蜘蛛2次访问之间的间隔,单位是秒。

Crawl-delay的值该设置多大,这个要看网站自身可以承受的负载,假设你希望Slurp每10秒来访问一次,这个设置就是:

User-agent: Yahoo-Slurp
Crawl-delay: 10

可实际上我从网站的日志中看到:Slurp的压力却不止10秒一次。原因是这样:雅虎美国和雅虎中国有2套蜘蛛在运行。

每个蜘蛛都是遵循Crawl-delay间隔的,因此为了进一步降低Slurp压力,希望达到10秒一次请求的频道 实际的Crawl-delay配置就要*2。但是实际上我看到的雅虎的蜘蛛是分布在很多台服务器上的:而多个服务器集群之间也是不相互协调同一网站的抓取频度的。

Yahoo Slurp来源于30多个IP网段,同网段内的蜘蛛协调抓取频度。因此:实际的Slurp设置,需要设置为10*30 = 300秒,才能达到期望的Slurp每10秒访问一次频度。

所以,个人建议在robots.txt中添加

User-agent: Yahoo-Slurp
Crawl-delay: 300 

参考网址:

http://zh.wikipedia.org/zh/Robots.txt

http://ysearchblog.cn/2006/07/yahoo_slurp.html

另外推荐一个robots.txt的校验地址:

http://tool.motoricerca.info/robots-checker.phtml

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注