我发现,还是有很多网站,特别是中小企业网站,并没有设置正确的robots.txt来引导搜索引擎机器爬虫的收录动作。对于很多不知道robots的网站来说,似乎有没有robots并不影响搜索引擎对网站的收录,我也从来没有考察过robots.txt对于网站收录是否有重要意义,但是,至少有一点是可以肯定的:如果你把robots.txt设置错了,那就一定会影响搜索引擎对你的收录了!所以,这里,就简单介绍一个这个robots.txt吧。 robots.txt,是用来声明网站中不希望被搜索引擎收录的内容或用来指定搜索引擎收录内容的规则文件。我们知道,现代搜索引擎收录网站页面是通过网络爬虫(英文名称有很多:bots,spider,Crawler,collector,walker,Slurp等等)进行页面采集,即由网络爬虫进入网站,将网站页面以及页面下的连接页面进行下载,然后通过内容分析器来分析页面内容。而在这个过程中,robots.txt的作用就在于告诉网络爬虫,那些页面不能采集,那些页面能采集。一般来说,主流搜索引擎的网络爬虫都是遵守robots.txt规范的。具体的robots规范可参见以下网站:www.robotstxt.org和www.w3.org。 robots.txt要求保存为小写(在Unix、Linux主机环境下,是区别大小写的,即统一字母的大小写不同,其代表不同字符),存放在网站根目录下,并保证可以通过www.yourdomain.com/robots.txt进行访问的。例如,WEB2Baby的robots地址为:http://www.web2baby.com/robots.txt。(呵呵,发现我的robots.txt打开的时候什么都没有吧,这就对了,下面我就讲讲robots.txt怎么写。) 我们填写robots.txt一般只需要注意两个语法规则就可以了:User-agent和Disallow。User-agent是规定允许采集本站页面的搜索引擎;Disallow规定不允许采集的页面路径。 例一、 User-agent:* Disallow: 上面规则表示允许所有搜索引擎的爬虫收录本站页面,并且允许采集所有页面。本例还有一个简便的方式,就是创建一个命名为robots.txt的空文档,放入网站个目录就好了! 例二、 User-agent:* Disallow:/admin/ 上面规则表示允许所有搜索引擎爬虫收录本站页面,但不允许收录/damin/目录下的所有页面。我们知道,admin目录下的页面,往往存放着后台管理页面,为了安全起见,我们不允许搜索引擎把/admin/目录下页面收录。 例三、 User-agent:Baiduspider Disallow: 上面规表示只允许Baidu爬虫收录本站页面,并且允许收录所有页面。 例四、 User-agent:* Disallow:/ 上面规则表示任何搜索引擎爬虫都不得收录本站所有页面。对于一些不希望公开站点的网站来说,的确是比较有用的! 知道以上规则,我们也可以巧妙利用robots.txt。 前一段时期,我一个朋友发现自己网站服务器性能严重下降,怎么也查不出原因。我们一起分析了服务器日志,发现有一个baidu的爬虫每时每刻都在疯狂的下载这网站页面,严重的损耗了服务器资源。大家知道,正规的搜索引擎爬虫采集网站页面,为了减少对于网站造成的负担,一般会选在网站流量较低的时段,如凌晨1点至早8点之间进行数据采集,而且会采集一部分页面,然后休息一段时间再来采集。而这个爬虫却明显违背了正规搜索引擎的爬虫规则,24小时不停的进行多进程下载。我们通过反向测试,发现这是个伪装成“baidu爬虫”的垃圾爬虫(有可能使竞争对手派来的)。于是我们修改了robots.txt规则,只允许国内常见的搜索引擎爬虫进行页面采集。之后,服务器的性能很快就回复正常。 这个案例中有两点需要注意: 1、幸好这个网络爬虫还遵守robots.txt规则,我发现似乎有一些垃圾爬虫并不遵守robots.txt规则 2、国内常见的搜索引擎爬虫有: Baiduspider、Googlebot、Slurp、MSNBOT、iaskspider、sogou+spider、Zhuaxia.com+1+Subscribers、Feedsky+crawler (可惜“中搜”和“有道”看不上web2baby,所以没有在日志里见过两位爬虫的身影,呵呵) 国外常见搜索引擎爬虫列表如下: BizBot04 kirk.overleaf.com HappyBot (gserver.kw.net) CaliforniaBrownSpider EI*Net/0.1 libwww/0.1 Ibot/1.0 libwww-perl/0.40 Merritt/1.0 StatFetcher/1.0 TeacherSoft/1.0 libwww/2.17 WWW Collector processor/0.0ALPHA libwww-perl/0.20 wobot/1.0 from 206.214.202.45 Libertech-Rover
www.libertech.com? WhoWhere Robot ITI Spider w3index MyCNNSpider SummyCrawler OGspider linklooker CyberSpyder (amant@www.cyberspyder.com) SlowBot heraSpider Surfbot Bizbot003 WebWalker SandBot EnigmaBot spyder3.microsys.com
www.freeloader.com 如果你已经写好了一个robots.txt文件,又没有把握,想测试一下,那么就到这个地方测试吧:
www.searchengineworld.com/cgi-bin/robotcheck.cgi 在这里再提一下META中的robots问题: Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots META标签则主要是针对一个个具体的页面。 Meta中的robots写法很简单,就是在间加入下面一段代码就可以了: 或者 index,表示搜索引擎应该收录本页面;follow表示网络爬虫应该按照该页面上的链接继续抓取下去。ALL则代替了index和follow功能。 在这里再提一下META中的robots问题: Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots META标签则主要是针对一个个具体的页面。 Meta中的robots写法很简单,就是在间加入下面一段代码就可以了: 或者 index,表示搜索引擎应该收录本页面;follow表示网络爬虫应该按照该页面上的链接继续抓取下去。ALL则代替了index和follow功能。