1.什么是robots.txt文件?
搜索引擎在访问互联网上的网页并获取网页信息,会首先会检查该网站的根域下是否有一个叫做robots.txt的纯文本文件,这个文件用于指定spider在您网站上的抓取范围。
您可以在您的网站中创建一个robots.txt,在文件中声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。
请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
2.robots.txt文件存放在哪里?
robots.txt文件应该放置在网站根目录下。举例来说,当spider访问一个网站(比如http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt
3.robots.txt文件的写法
robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。
robots里面内容的大小写不可更改,Disallow后面的冒号必须为英文状态的。
robots.txt文件的格式
User-agent:定义搜索引擎的类型
Disallow:定义禁止搜索引擎收录的地址
Allow:定义允许搜索引擎收录的地址
我们常用的搜索引擎类型有:(User-agent区分大小写)
4.robots使用具体案例
例1.禁止所有搜索引擎访问网站的任何部分
User-agent:*
Disallow:/
例2.允许所有的robot访问
(或者也可以建一个空文件“/robots.txt”file)
User-agent:*
Allow:
例3.禁止某个搜索引擎的访问
User-agent:Googlebot
Disallow:/
例4.允许某个搜索引擎的访问
User-agent:Baiduspider
allow:/
例5.一个简单例子
在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。 需要注意的是对每一个目录必须分开声明,而不要写成
“Disallow:/cgi-bin//tmp/”。
User-agent:后的*具有特殊的含义,代表“anyrobot”,所以在该文件中不能有“Disallow:/tmp/*”or“Disallow:*.gif”这样的记录出现。
User-agent:*
Disallow:/cgi-bin/
Disallow:/tmp/
Disallow:/~joe/
例6.要拦截除Googlebot以外的所有漫游器不能访问您的网页
可以使用下列语法:
User-agent:
Disallow:/
User-agent:Googlebot
Disallow:
Googlebot跟随指向它自己的行,而不是指向所有漫游器的行。
例7.“Allow”扩展名
Googlebot可识别称为“Allow”的robots.txt标准扩展名。
其他搜索引擎的漫游器可能无法识别此扩展名,
因此请使用您感兴趣的其他搜索引擎进行查找。“Allow”行的作用原理完全与“Disallow”行一样。只需列出您要允许的目录或页面即可。 您也可以同时使用“Disallow”和“Allow”。
例如,要拦截子目录中某个页面之外的其他所有页面,可以使用下列条目:
User-agent:Googlebot
Disallow:/folder1/
Allow:/folder1/myfile.html
这些条目将拦截folder1目录内除myfile.html之外的所有页面。
例8.如果您要拦截Googlebot并允许Google的另一个漫游器
(如Googlebot-Mobile),可使用”Allow”规则允许该漫游器的访问。
例如:
User-agent:Googlebot
Disallow:/
User-agent:Googlebot-Mobile
Allow:
例9.使用*号匹配字符序列
您可使用星号(*)来匹配字符序列。
例如,要拦截对所有以private开头的子目录的访问,可使用下列条目:
User-Agent:Googlebot
Disallow:/private*/
例10.要拦截对所有包含问号(?)的网址的访问
可使用下列条目:
User-agent:*
Disallow:/*?*
例11.使用$匹配网址的结束字符
您可使用$字符指定与网址的结束字符进行匹配。
例如,要拦截以.asp结尾的网址,可使用下列条目:
User-agent:Googlebot
Disallow:/*.asp$
例12.与Allow指令配合使用
例如,如果?表示一个会话ID,您可排除所有包含该ID的网址,确保Googlebot不会抓取重复的网页。但是,以?结尾的网址可能是您要包含的网页版本。
在此情况下,可对robots.txt文件进行如下设置:
User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/*?
一行将拦截包含?的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号(?),而后又是任意字符串的网址)。 Allow:/*?$一行将允许包含任何以?结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号(?),问号之后没有任何字符的网址)。
例13.仅禁止Baiduspider抓取.jpg格式图片
User-agent:Baiduspider
Disallow:/*.jpg$
5.RobotsMeta标签
Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而RobotsMeta标签则主要是针对一个个具体的页面。
RobotsMeta标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。
content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。
index指令告诉搜索机器人抓取该页面;
follow指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
RobotsMeta标签的缺省值是index和follow,
只有inktomi除外,对于它,缺省值是index、nofollow。
需要注意的是:
上述的robots.txt和RobotsMeta标签限制搜索引擎机器人(ROBOTS)抓取站点内容的办法只是一种规则,需要搜索引擎机器人的配合才行,并不是每个ROBOTS都遵守的。 目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于RobotsMETA标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。
要防止所有搜索引擎显示您网站的快照,请将此元标记置入网页的<HEAD>部分:
<metaname="robots"content="noarchive">
要允许其他搜索引擎显示快照,但仅防止百度显示,请使用以下标记:
<metaname="Baiduspider"content="noarchive">
6.附:常用的搜索引擎类型(User-agent区分大小写)
google蜘蛛:Googlebot
百度蜘蛛:Baiduspider
yahoo蜘蛛:Yahoo!slurp
alexa蜘蛛:ia_archiver
bing蜘蛛:MSNbot
altavista蜘蛛:scooter
lycos蜘蛛:lycos_spider_(t-rex)
alltheweb蜘蛛:fast-webcrawler
inktomi蜘蛛:slurp
Soso蜘蛛:Sosospider
GoogleAdsense蜘蛛:Mediapartners-Google
有道蜘蛛:YoudaoBot
陈金凌-外贸建站推广分享社区