学习XHTM+CSS2.0制作标准站点方法(robot用法)

robots.txt 和 Robots META 标签

平文胜 2003-10-29

我们知道,搜索引擎都有自己的 “ 搜索机器人 ” ( ROBOTS ),并通过这些 ROBOTS 在网络上沿着网页上的链接(一般是 http 和 src 链接)不断抓取资料建立自己的数据库。

对于网站管理者和内容提供者来说,有时候会有一些站点内容,不希望被 ROBOTS 抓取而公开。为了解决这个问题, ROBOTS 开发界提供了两个办法:一个是 robots.txt ,另一个是 The Robots META 标签。

一、 robots.txt

1 、 什么是 robots.txt ?

robots.txt 是一个纯文本文件,通过在这个文件中声明该网站中不想被 robots 访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。

当一个搜索机器人访问一个站点时,它会首先检查该站点根目录下是否存在 robots.txt ,如果找到,搜索机器人就会按照该文件中的内容来确定访问的范围,如果该文件不存在,那么搜索机器人就沿着链接抓取。

robots.txt 必须放置在一个站点的根目录下,而且文件名必须全部小写。

网站 URL

相应的 robots.txt 的 URL

http://www.w3.org/
http://www.w3.org/robots.txt

http://www.w3.org:80/
http://www.w3.org:80/robots.txt

http://www.w3.org:1234/
http://www.w3.org:1234/robots.txt

http://w3.org/
http://w3.org/robots.txt

2 、 robots.txt 的语法

"robots.txt" 文件包含一条或更多的记录,这些记录通过空行分开(以 CR,CR/NL, or NL 作为结束符),每一条记录的格式如下所示:

"
  1<field>:<optionalspace><value><optionalspace>"  。 
  2
  3#####    
  4在该文件中可以使用  #  进行注解,具体使用方法和  UNIX  中的惯例一样。该文件中的记录通常以一行或多行  User-agent  开始,后面加上若干  Disallow  行  ,  详细情况如下: 
  5
  6#####    
  7User-agent: 
  8
  9#####  该项的值用于描述搜索引擎  robot  的名字,在  "robots.txt"  文件中,如果有多条  User-agent  记录说明有多个  robot  会受到该协议的限制,对该文件来说,至少要有一条  User-agent  记录。如果该项的值设为  *  ,则该协议对任何机器人均有效,在  "robots.txt"  文件中,  "User-agent  :  *"  这样的记录只能有一条。 
 10
 11#####    
 12Disallow : 
 13
 14#####  该项的值用于描述不希望被访问到的一个  URL  ,这个  URL  可以是一条完整的路径,也可以是部分的,任何以  Disallow  开头的  URL  均不会被  robot  访问到。例如  "Disallow: /help"  对  /help.html  和  /help/index.html  都不允许搜索引擎访问,而  "Disallow: /help/"  则允许  robot  访问  /help.html  ,而不能访问  /help/index.html  。 
 15
 16#####  任何一条  Disallow  记录为空,说明该网站的所有部分都允许被访问,在  "/robots.txt"  文件中,至少要有一条  Disallow  记录。如果  "/robots.txt"  是一个空文件,则对于所有的搜索引擎  robot  ,该网站都是开放的。 
 17
 18#####    
 19下面是一些  robots.txt  基本的用法: 
 20
 21#####  l  禁止所有搜索引擎访问网站的任何部分:    
 22User-agent: *   
 23Disallow: / 
 24
 25#####  l  允许所有的  robot  访问    
 26User-agent: *   
 27Disallow:   
 28或者也可以建一个空文件  "/robots.txt" file 
 29
 30#####  l  禁止所有搜索引擎访问网站的几个部分(下例中的  cgi-bin  、  tmp  、  private  目录)    
 31User-agent: *   
 32Disallow: /cgi-bin/   
 33Disallow: /tmp/   
 34Disallow: /private/ 
 35
 36#####  l  禁止某个搜索引擎的访问(下例中的  BadBot  )    
 37User-agent: BadBot   
 38Disallow: / 
 39
 40#####  l  只允许某个搜索引擎的访问(下例中的  WebCrawler  )    
 41User-agent: WebCrawler   
 42Disallow: 
 43
 44#####  User-agent: *   
 45Disallow: / 
 46
 47#####    
 483  、  常见搜索引擎机器人  Robots  名字 
 49
 50#####    
 51名称  搜索引擎 
 52
 53#####  Baiduspider http://www.baidu.com 
 54
 55#####  Scooter http://www.altavista.com 
 56
 57#####  ia_archiver http://www.alexa.com 
 58
 59#####  Googlebot http://www.google.com 
 60
 61#####  FAST-WebCrawler http://www.alltheweb.com 
 62
 63#####  Slurp http://www.inktomi.com 
 64
 65#####  MSNBOT http://search.msn.com 
 66
 67#####  4  、  robots.txt  举例 
 68
 69#####  下面是一些著名站点的  robots.txt  : 
 70
 71#####  http://www.cnn.com/robots.txt 
 72
 73#####  http://www.google.com/robots.txt 
 74
 75#####  http://www.ibm.com/robots.txt 
 76
 77#####  http://www.sun.com/robots.txt 
 78
 79#####  http://www.eachnet.com/robots.txt 
 80
 81#####    
 825  、  常见  robots.txt  错误 
 83
 84#####    
 85l  颠倒了顺序:    
 86错误写成    
 87User-agent: *   
 88Disallow: GoogleBot 
 89
 90#####  正确的应该是:    
 91User-agent: GoogleBot   
 92Disallow: * 
 93
 94#####  l  把多个禁止命令放在一行中:    
 95例如,错误地写成    
 96Disallow: /css/ /cgi-bin/ /images/ 
 97
 98#####  正确的应该是    
 99Disallow: /css/   
100Disallow: /cgi-bin/   
101Disallow: /images/ 
102
103#####  l  行前有大量空格    
104例如写成    
105Disallow: /cgi-bin/   
106尽管在标准没有谈到这个,但是这种方式很容易出问题。 
107
108#####  l 404  重定向到另外一个页面:    
109当  Robot  访问很多没有设置  robots.txt  文件的站点时,会被自动  404  重定向到另外一个  Html  页面。这时  Robot  常常会以处理  robots.txt  文件的方式处理这个  Html  页面文件。虽然一般这样没有什么问题,但是最好能放一个空白的  robots.txt  文件在站点根目录下。 
110
111#####  l  采用大写。例如    
112USER-AGENT: EXCITE   
113DISALLOW:   
114虽然标准是没有大小写的,但是目录和文件名应该小写:    
115user-agent:GoogleBot   
116disallow: 
117
118#####  l  语法中只有  Disallow  ,没有  Allow  !    
119错误的写法是:    
120User-agent: Baiduspider   
121Disallow: /john/   
122allow: /jane/ 
123
124#####  l  忘记了斜杠  /   
125错误的写做:    
126User-agent: Baiduspider   
127Disallow: css 
128
129#####  正确的应该是    
130User-agent: Baiduspider   
131Disallow: /css/ 
132
133#####  下面一个小工具专门检查  robots.txt  文件的有效性: 
134
135#####  http://www.searchengineworld.com/cgi-bin/robotcheck.cgi 
136
137#####  二、  Robots META  标签 
138
139#####  1  、什么是  Robots META  标签 
140
141#####  Robots.txt  文件主要是限制整个站点或者目录的搜索引擎访问情况,而  Robots META  标签则主要是针对一个个具体的页面。和其他的  META  标签(如使用的语言、页面的描述、关键词等)一样,  Robots META  标签也是放在页面的  <head></head> 中,专门用来告诉搜索引擎  ROBOTS  如何抓取该页的内容。具体的形式类似(见黑体部分): 
142
143#####  <html>
144
145#####  <head>
146
147#####  <title> 时代营销  \--  网络营销专业门户  </title>
148
149#####  <meta content="index,follow" name="Robots"/>
150
151#####  <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
152
153#####  <meta content="  营销  … " name="keywords"/>
154
155#####  <meta content="  时代营销网是  …" name="description"/>
156
157#####  <link href="/public/css.css" rel="stylesheet" type="text/css"/>
158
159#####  </head>
160
161#####  <body>
162
163#####  … 
164
165#####  </body>
166
167#####  </html>
168
169#####    
1702  、  Robots META  标签的写法: 
171
172#####    
173Robots META  标签中没有大小写之分,  name=”Robots”  表示所有的搜索引擎,可以针对某个具体搜索引擎写为  name=”BaiduSpider”  。  content  部分有四个指令选项:  index  、  noindex  、  follow  、  nofollow  ,指令间以  “,”  分隔。 
174
175#####  INDEX  指令告诉搜索机器人抓取该页面; 
176
177#####  FOLLOW  指令表示搜索机器人可以沿着该页面上的链接继续抓取下去; 
178
179#####  Robots Meta  标签的缺省值是  INDEX  和  FOLLOW  ,只有  inktomi  除外,对于它,缺省值是  INDEX,NOFOLLOW  。 
180
181#####    
182这样,一共有四种组合: 
183
184#####  &lt; META  NAME="ROBOTS" CONTENT="INDEX,FOLLOW"&gt;
185
186#####  &lt; META  NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW"&gt;
187
188#####  &lt; META  NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW"&gt;
189
190#####  &lt; META  NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW"&gt;
191
192#####    
193其中 
194
195#####  <meta content="INDEX,FOLLOW" name="ROBOTS"/> 可以写成 
196
197#####  <meta content="ALL" name="ROBOTS"/> ; 
198
199#####  <meta content="NOINDEX,NOFOLLOW" name="ROBOTS"/> 可以写成 
200
201#####  &lt; META  NAME="ROBOTS" CONTENT="NONE"&gt;
202
203#####  需要注意的是:上述的  robots.txt  和  Robots META  标签限制搜索引擎机器人(  ROBOTS  )抓取站点内容的办法只是一种规则,需要搜索引擎机器人的配合才行,并不是每个  ROBOTS  都遵守的。 
204
205#####    
206目前看来,绝大多数的搜索引擎机器人都遵守  robots.txt  的规则,而对于  Robots META  标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎  GOOGLE  就完全支持,而且  GOOGLE  还增加了一个指令  “archive”  ,可以限制  GOOGLE  是否保留网页快照。例如: 
207
208#####  <meta content="index,follow,noarchive" name="googlebot"/>
209
210#####  表示抓取该站点中页面并沿着页面中链接抓取,但是不在  GOOLGE  上保留该页面的网页快照。</optionalspace></value></optionalspace></field>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus