我们知道,搜索引擎都有自己的“搜索机器人”(ROBOTS),并通过这些ROBOTS在网络上沿着网页上的链接(一般是http和src链接)不断抓取资料建立自己的数据库。
: V6 w/ p1 d& _7 C. ~1 K; a163K网站系统官方论坛 对于网站管理者和内容提供者来说,有时候会有一些站点内容,不希望被ROBOTS抓取而公开。为了解决这个问题,ROBOTS开发界提供了两个办法:一个是robots.txt,另一个是The Robots META标签。
163K网站系统官方论坛/ C5 v* M: x1 V7 ^
一、 robots.txt
163k团购网站系统官方服务论坛# W8 ~) G/ v) Y
1、 什么是robots.txt?
( a% B9 L2 p0 h" e5 M
robots.txt是一个纯文本文件,通过在这个文件中声明该网站中不想被robots访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。
团购网站系统,团购网程序0 C$ I+ R" Y( ~5 r% [& f8 m6 X- Y
当一个搜索机器人访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果找到,搜索机器人就会按照该文件中的内容来确定访问的范围,如果该文件不存在,那么搜索机器人就沿着链接抓取。
. U! q3 @( N9 U163K网站系统官方论坛 robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。
* S6 t& M& E- U' A, q- j$ A2 y1 d团购网站系统,团购网程序网站 URL相应的 robots.txt的 URL
E; l+ U/ O& W2 k1 W' Ohttp://www.w3.org/http://www.w3.org/robots.txt
bbs.163k.com7 M2 g3 ^$ g3 `7 ^; L1 t
http://www.w3.org:80/http://www.w3.org:80/robots.txt
团购网站系统,团购网程序 L. E- B* H- g$ n u! Z$ |
http://www.w3.org:1234/http://www.w3.org:1234/robots.txt
bbs.163k.com% a% V3 E: d4 n
http://w3.org/http://w3.org/robots.txt
团购网站系统,团购网程序( q! B. F2 m. t
为互联网事业发展提供源动力!& ?2 S" |/ h$ X2 M& f! ? k
2、 robots.txt的语法
) ^* e- l* H# i3 jbbs.163k.com "robots.txt"文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:
163k团购网站系统官方服务论坛4 w: H! K' i( H/ @+ u
"<field>:<optionalspace><value><optionalspace>"。
' I- ?8 h+ [: i( W5 s' U, ]& E163k团购网站系统官方服务论坛 在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下:
2 i# `$ C% K' R. u. @ D163K网站系统官方论坛 User-agent:
% J* u+ k. j/ pbbs.163k.com为互联网事业发展提供源动力!% `2 x! Y# f" X/ ]$ b! n" u
) J3 z, g# d- ]/ M9 ]* \
该项的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件中, "User-agent:*"这样的记录只能有一条。
团购网站系统,团购网程序% o% Z; g+ K( t% n* O' {; N
Disallow :
/ ]* m7 c" r& T2 I8 N! ?1 t0 n+ h/ @& S& f8 e% B$ B
+ j/ X6 L7 ]9 V+ X T8 c163k团购网站系统官方服务论坛 该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow 开头的URL均不会被robot访问到。例如"Disallow: /help"对/help.html 和/help/index.html都不允许搜索引擎访问,而"Disallow: /help/"则允许robot访问/help.html,而不能访问/help/index.html。
/ S7 H+ l# a+ b) z+ d
163K网站系统官方论坛; o. V0 ^8 f. l- Q8 U" }
任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在"/robots.txt"文件中,至少要有一条Disallow记录。如果 "/robots.txt"是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。
163k团购网站系统官方服务论坛0 l+ ^' z( }% U) `
下面是一些robots.txt基本的用法:
bbs.163k.com+ q& p" ?1 z. a1 _* s
l 禁止所有搜索引擎访问网站的任何部分:
% W+ ]' }/ p; T% y/ r$ f A2 f163k团购网站系统官方服务论坛User-agent: *
7 @) Z& p* Q, x0 b8 x为互联网事业发展提供源动力!Disallow: /
! P' h& P& P/ y7 T7 Y; w
l 允许所有的robot访问
_: E9 s. B) F163k团购网站系统官方服务论坛User-agent: *
$ e# a$ i2 x+ t5 _8 u J
Disallow:
( c6 N# T& A3 w' \
或者也可以建一个空文件 "/robots.txt" file
' K2 U3 O5 o. Z. d5 k为互联网事业发展提供源动力!l 禁止所有搜索引擎访问网站的几个部分(下例中的cgi-bin、tmp、private目录)
bbs.163k.com( d5 ?% j! M6 i
User-agent: *
- n: m4 G% y$ k0 X6 J团购网站系统,团购网程序Disallow: /cgi-bin/
163K网站系统官方论坛& _4 }# [+ ]: h. }! V1 e B0 T8 k, L
Disallow: /tmp/
7 A- L. I' B. ^* `8 d" I163K网站系统官方论坛Disallow: /private/
* U6 l( I9 h1 C# j+ ?6 I" d4 sbbs.163k.coml 禁止某个搜索引擎的访问(下例中的BadBot)
# {" _1 x/ \. V% d5 x团购网站系统,团购网程序User-agent: BadBot
9 P2 A) o+ ~- v1 M团购网站系统,团购网程序Disallow: /
bbs.163k.com8 {/ H" _! k! L7 x9 T
l 只允许某个搜索引擎的访问(下例中的WebCrawler)
163k团购网站系统官方服务论坛& Z! a! l1 m; a4 e9 U
User-agent: WebCrawler
团购网站系统,团购网程序6 T, l" _- c5 R' ?( q) l
Disallow:
% I3 S: p+ ^+ V9 L5 R163k团购网站系统官方服务论坛: @* ~" W" B2 o/ }4 _5 s( t" q
User-agent: *
* W! H9 y' {& U$ ~% E* \3 y163K网站系统官方论坛Disallow: /
' F" B9 y% T) G* V
3、 常见搜索引擎机器人Robots名字
为互联网事业发展提供源动力!) _4 V+ o; M: K/ i% v! Z' g
0 R" H1 M- u. S2 ^% B# o% t团购网站系统,团购网程序名称 搜索引擎
# S* \9 y2 R- F. o
Baiduspider
http://www.baidu.com bbs.163k.com: U) R7 m: o; Q
Scooter
http://www.altavista.com 163k团购网站系统官方服务论坛9 q! x% L: w( m2 E) ?. s+ V
ia_archiver
http://www.alexa.com
: n* g$ J" |5 c; I4 U* g163k团购网站系统官方服务论坛Googlebot
http://www.google.com 163K网站系统官方论坛* D; Y( ]+ K \# r/ Q) `
FAST-WebCrawler
http://www.alltheweb.com * O! W: V9 {1 a4 q. H/ O5 s- c
Slurp
http://www.inktomi.com
$ o( O+ s# u- D; @2 } M6 ~% C) w `163K网站系统官方论坛0 a# h' a' G0 w
MSNBOT
http://search.msn.com
$ Z4 w( g% M9 @" Z8 G1 Dbbs.163k.com0 p' V% m: m0 Q- T. S0 v
[/url]
6 O( e3 R/ P6 a\" }163k团购网站系统官方服务论坛 4、 robots.txt举例
3 A1 T. ^+ n( q2 s8 C3 C( r 下面是一些著名站点的robots.txt:* ~! ^) ]8 w# z V3 {9 L) V\" l
[url=http://www.cnn.com/robots.txt]http://www.cnn.com/robots.txt
" G! k: Y$ `) U6 P: b# P, M为互联网事业发展提供源动力!http://www.google.com/robots.txtbbs.163k.com5 q; A$ u& S* _* y5 ?
http://www.ibm.com/robots.txt, E4 j: p/ R1 l( s+ |; l3 p
http://www.sun.com/robots.txt
0 g0 Q' E$ {, x% Y163K网站系统官方论坛http://www.eachnet.com/robots.txt
/ P3 Z/ L( o8 P9 ~8 R) x 5、 常见robots.txt错误
bbs.163k.com+ o) _/ \. C+ u# G9 j7 j
l 颠倒了顺序:
为互联网事业发展提供源动力!# M9 ]* J7 }9 G2 p) | ~( Q7 `! a) g
错误写成
3 H7 o$ g# g- \+ g$ J- v团购网站系统,团购网程序User-agent: *
& Q! f8 j. i, X$ SDisallow: GoogleBot
% f+ E; l5 Z: o163K网站系统官方论坛163K网站系统官方论坛! A% R4 l0 `! b+ g" G H
正确的应该是:
$ _' S1 y Q! M& z8 @" n/ I0 _
User-agent: GoogleBot
5 p) G- G; D2 w4 ?7 P' x% }团购网站系统,团购网程序Disallow: *
% o; C* }8 u7 a s2 j为互联网事业发展提供源动力!l 把多个禁止命令放在一行中:
8 k/ D y3 o8 p; p- I2 B( ubbs.163k.com例如,错误地写成
163k团购网站系统官方服务论坛0 D+ C6 N* x3 @4 s1 w( J9 A) ]
Disallow: /css/ /cgi-bin/ /images/
3 Q U, v9 q- l/ V: f为互联网事业发展提供源动力!
5 _' z* X8 l9 Z/ t6 a {2 U- }正确的应该是
8 R2 | B& I% ^1 v# _团购网站系统,团购网程序Disallow: /css/
3 y6 Y8 H) ~- v163k团购网站系统官方服务论坛Disallow: /cgi-bin/
8 ]* K, g; y9 m7 k P# W3 U团购网站系统,团购网程序Disallow: /images/
为互联网事业发展提供源动力!0 H! S. u; I/ I9 y/ o0 @* A
l 行前有大量空格
163k团购网站系统官方服务论坛5 e4 M! x8 @" s" k i7 V; ?
例如写成
+ \3 w, o6 r9 Q! Y6 j, `163k团购网站系统官方服务论坛 Disallow: /cgi-bin/
* z* q" `3 _/ s/ w尽管在标准没有谈到这个,但是这种方式很容易出问题。
5 B: K/ G; \; X7 x! `: l
l 404重定向到另外一个页面:
5 A$ ~3 o- D, {1 c9 B4 [163K网站系统官方论坛当Robot访问很多没有设置robots.txt文件的站点时,会被自动404重定向到另外一个Html页面。这时Robot常常会以处理robots.txt文件的方式处理这个Html页面文件。虽然一般这样没有什么问题,但是最好能放一个空白的robots.txt文件在站点根目录下。
: c- @, A$ J& x/ V E0 `) b163K网站系统官方论坛l 采用大写。例如
/ _0 R ^ a1 `团购网站系统,团购网程序USER-AGENT: EXCITE
) F2 X! j. ~4 L163k团购网站系统官方服务论坛DISALLOW:
4 l: G. o' A& e( X. p t, o$ ]
虽然标准是没有大小写的,但是目录和文件名应该小写:
9 B; g: G* ]3 z2 t) A$ V! Z163k团购网站系统官方服务论坛user-agent:GoogleBot
% r1 r+ [) N9 p2 r$ J! \163K网站系统官方论坛disallow:
团购网站系统,团购网程序( r/ C% F! S" r) b
l 语法中只有Disallow,没有Allow!
, B) m% [, B7 Z9 @7 ?6 w8 e7 G- Z163k团购网站系统官方服务论坛错误的写法是:
bbs.163k.com" s% y% P6 |5 @- I0 e
User-agent: Baiduspider
* ^5 a1 a& w. R. Q" L4 }: X163k团购网站系统官方服务论坛Disallow: /john/
' {* R/ r$ t6 N团购网站系统,团购网程序allow: /jane/
4 K, a/ T! B: M& q% M5 ?! d1 {为互联网事业发展提供源动力!l 忘记了斜杠/
163k团购网站系统官方服务论坛) E& m. Q* w7 Y2 a: p5 I0 w/ F8 J
错误的写做:
为互联网事业发展提供源动力!8 r/ K) R. a/ S2 S' f: S2 _
User-agent: Baiduspider
163k团购网站系统官方服务论坛0 m1 m- E8 Q" I/ q7 ]- m& }- \
Disallow: css
8 r% v& O4 ~+ I' |) A" Q: T为互联网事业发展提供源动力!
- |6 {4 H; r0 g4 O) ^+ u为互联网事业发展提供源动力!正确的应该是
; |# G0 K4 ?& r163K网站系统官方论坛User-agent: Baiduspider
! B U- T+ h8 i8 x为互联网事业发展提供源动力!Disallow: /css/
$ X% i/ M% p% A8 t2 S0 T163k团购网站系统官方服务论坛 下面一个小工具专门检查robots.txt文件的有效性:
# H4 x3 }, X0 Z' |. f" e9 f! R+ c8 S http://www.searchengineworld.com/cgi-bin/robotcheck.cgi
8 `5 v0 @! ]8 W9 c8 l" l团购网站系统,团购网程序 二、 Robots META标签
, y0 W* z: O+ j: \为互联网事业发展提供源动力! 1、什么是Robots META标签
为互联网事业发展提供源动力!+ l( M' `5 u: [. g1 O3 }
7 i0 [. O" \6 T163K网站系统官方论坛) x# P2 P5 ~& n3 i( F1 }9 Y* c
Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots META标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots META标签也是放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。具体的形式类似(见黑体部分):
bbs.163k.com, y& L- g8 W2 j/ h+ w
<html>
2 u2 p0 _# v. X) `2 k2 h- t) [2 k3 G( k<head>
团购网站系统,团购网程序 a; u4 D6 p4 j& O" N
<title>时代营销--网络营销专业门户</title>
2 v V* ~6 `: S- ]
<meta name="Robots" content="index,follow">
团购网站系统,团购网程序$ g2 Y, U, K$ l* y
<meta http-equiv="Content-Type" CONTENT="text/html; charset=gb2312">
为互联网事业发展提供源动力!- f! [% t& K/ {& y, f
<meta name="keywords" content="营销… ">
163K网站系统官方论坛) Q* H0 \% n% A& ]' i `
<meta name="description" content="时代营销网是…">
团购网站系统,团购网程序7 w5 i2 D1 F% o0 k7 a$ i
<link rel="stylesheet" href="/public/css.css" type="text/css">
. Y* c; S. ?' B4 C0 R1 fbbs.163k.com</head>
为互联网事业发展提供源动力!1 {& m2 c* A% T: D
<body>
: n3 q0 J0 c; C! a. B5 j8 Q
…
( Q4 W/ }2 `- u0 d# A3 {& E1 n: r7 f团购网站系统,团购网程序</body>
+ D- t9 h$ F5 M3 [6 P% [- f163k团购网站系统官方服务论坛</html>
为互联网事业发展提供源动力!& v4 ~+ Z! S$ b# G$ r9 L
2、Robots META标签的写法:
g: |! M- b% xbbs.163k.com Robots META标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。
6 p* t8 ]5 |& U! ^; f$ _2 }4 `0 j, Z团购网站系统,团购网程序 INDEX 指令告诉搜索机器人抓取该页面;
) w' ?3 b* ] `7 C, h163k团购网站系统官方服务论坛 FOLLOW 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
团购网站系统,团购网程序9 A3 g0 @ L8 o
Robots Meta标签的缺省值是INDEX和FOLLOW,只有inktomi除外,对于它,缺省值是INDEX,NOFOLLOW。
9 x e P6 n& I 这样,一共有四种组合:
v E) L Z2 M: i$ h
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
团购网站系统,团购网程序: J/ g! c& a# n4 Q
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
163k团购网站系统官方服务论坛( C7 N- `$ y* i( T5 W' v+ J
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
团购网站系统,团购网程序: ~. P1 N5 A1 T: n% V! J
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
9 {4 Z. ?. M( N/ Z团购网站系统,团购网程序 其中
7 D# _1 H/ c& w6 i- a( ?3 G0 [
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">可以写成
- |3 i" o7 {9 i/ G为互联网事业发展提供源动力!<META NAME="ROBOTS" CONTENT="ALL">;
为互联网事业发展提供源动力!) S* K; z* B y/ ~) i
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">可以写成
0 b* A6 V7 k$ X0 V2 |! F- ]163K网站系统官方论坛<META NAME="ROBOTS" CONTENT="NONE">
9 |8 `9 Y/ L4 c+ g0 t5 l" c" G
需要注意的是:上述的robots.txt和Robots META标签限制搜索引擎机器人(ROBOTS)抓取站点内容的办法只是一种规则,需要搜索引擎机器人的配合才行,并不是每个ROBOTS都遵守的。
163K网站系统官方论坛5 P1 ]6 k+ Y0 L) A8 V+ P
目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。例如:
5 N$ _( z3 _) R2 T3 d4 b
<META NAME="googlebot" CONTENT="index,follow,noarchive">
4 L" J* D3 K! }0 m6 E163k团购网站系统官方服务论坛 表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。