近日,有关360搜索违反robots协议的事件引起了广大站长的不满,有关robots.txt文件,做seo的人都知道,他是告诉蜘蛛哪些页面可以爬取,哪些页面不可以爬取。但有关robots.txt的语法及了解,我一直是一知半解的,经过上周的培训及自己看了一些资料,对此也有一定的了解,下面就简单整理一下:
第一:robots.txt的定义:它是一个纯文本文件,通过这个文件,让蜘蛛知道更明确的知道该如何爬取,这样就可以让搜索引擎只爬取指定的内容,从而利于指定页面的收录;除此之外,robots.txt必须放置于一个站点的根目录下,而且文件名必须全部小写。而相应的robots.txt则为:
http://xxx/
http://xxx/robots.txt;
第二:robots.txt的语法:robots.txt文件中,通常以一行或多行User-agent(应用以下规则的蜘蛛)开始,后面加上若干Disallow(要拦截的网址),除此之外,我们知道,robots.txt文件中都是独立的各个部分,具体为:
User-agent:*
Disallow:/folder1/
User-Agent: Googlebot
Disallow: /folder2/
Sitemap: http://xxx/sitemap.html
以上案例中,只有于/folder2/匹配的网址才不会被蜘蛛抓取;而且,一般我们在robots.txt文件中会建议加入sitemap,优势即可以引导蜘蛛区爬取网站的地图页面,同时robots.txt文件中的sitemap指令是支持多个的!我们常见的:
第三:User-agent和Disallow名词解释:
User-agent:用于描述搜索引擎robot的名字,在“robots.txt”中,如果存在多个User-agent,则表示多个robot会受到限制,如果设为*,则表示该协议对任何机器均有效;但规定,“robots.txt”文件中,User-agent:*这样的记录只能有一条。
Disallow:任何以Disallow开头的URL均是不希望被robot访问到,Disallow可以是一条完整的URL,也可以是部分;简单的表示手法为:要拦截某一目录以及其中的所有内容,请在目录名后添加正斜线,为:“ Disallow: /无用目录/”;要拦截某个网页,请列出该网页,为:“Disallow: /私人文件.html”。如果Disallow记录为空,则说明该网站均可以被访问。我们常见的写法包括:
Disallow: /admin/ 这里表示禁止爬寻admin目录下面的目录;
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)。
Disallow: /*?* 这里表示禁止访问网站中所有的动态页面 
Disallow: /jpg$ 这里表示禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 这里表示禁止爬去ab文件夹下面的adc.html文件。
当然,有关“robots.txt”文件,这里只是介绍了一些皮毛,如何恰到好处的使用才是其真谛,有关这方面的知识笔者也需要进一步的学习和了解!

arrow
arrow
    全站熱搜

    EMBA的小眼睛 發表在 痞客邦 留言(0) 人氣()