在你的主页中为Web Robot设计路标

2004-01-30 10:35:42  作者

Internet越来越酷,WWW的知名度如日中天。在Internet上发布公司信息、进行电子商 务已经从时髦演化成时尚。作为一个Web Master,你可能对HTMLJavascript、Java、 ActiveX了如指掌,但你是否知道什么是Web Robot?你是否知道Web Robot和你所设 计的主页有什么关系?

Internet上的流浪汉--- Web Robot

有时你会莫名其妙地发现你的主页的内容在一个搜索引擎中被索引,即使你从未与他 们有过任何联系。其实这正是Web Robot的功劳。Web Robot其实是一些程序,它可以 穿越大量Internet网址的超文本结构,递归地检索网络站点所有的内容。这些程序有时 被叫 “蜘蛛(Spider)” , “网上流浪汉(Web Wanderer)”,“网络蠕虫(web worms)”或Web crawler。一些Internet网上知名的搜索引擎站点(Search Engines)都 有专门的Web Robot程序来完成信息的采集,例如Lycos,Webcrawler,Altavista等,以 及中文搜索引擎站点例如北极星,网易,GOYOYO等。

Web Robot就象一个不速之客,不管你是否在意,它都会忠于自己主人的职责,任劳 任怨、不知倦怠地奔波于万维网的空间,当然也会光临你的主页,检索主页内容并生 成它所需要的记录格式。或许有的主页内容你乐于世人皆知,但有的内容你却不愿被 洞察、索引。难道你就只能任其“横行”于自己主页空间,能否指挥和控制Web Robot的行踪呢?答案当然是肯定的。只要你阅读了本篇的下文,就可以象一个交通 警察一样,布置下一个个路标,告诉Web Robot应该怎么去检索你的主页,哪些可以 检索,哪些不可以访问。

其实Web Robot能听懂你的话

不要以为Web Robot是毫无组织,毫无管束地乱跑。很多Web Robot软件给网络站点的 治理员或网页内容制作者提供了两种方法来限制Web Robot的行踪

1、Robots Exclusion Protocol 协议

网络站点的治理员可以在站点上建立一个专门格式的文件,来指出站点上的哪一部分 可以被robot访问, 这个文件放在站点的根目录下,即http://.../robots.txt.

2、Robots META tag

一个网页作者可以使用专门的HTML META tag ,来指出某一个网页是否可以被索 引、分析或链接。

这些方法适合于大多数的Web Robot,至于是否在软件中实施了这些方法,还依靠于 Robot的开发者,并非可以保证对任何Robot都灵验。假如你迫切需要保护自己内容, 则应考虑采用诸如增加密码等其他保护方法。

使用Robots Exclusion Protocol协议

当Robot访问一个 Web 站点时,比如http://www.sti.net.cn/,它先去检查文件http: //www.sti.net.cn/robots.txt。假如这个文件存在,它便会按照这样的记录格式去分析

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/


以确定它是否应该检索站点的文件。这些记录是专门给Web Robot看的,一般的浏览 者大概永远不会看到这个文件,所以千万不要异想天开地在里面加入形似%26lt;img src=*%26gt; 类的HTML语句或是“How do you do? where are you from?”之类假情假意的问候语。

在一个站点上只能有一个 "/robots.txt" 文件,而且文件名的每个字母要求全部是小 写。在Robot的记录格式中每一个单独的"Disallow" 行表示你不希望Robot访问的URL, 每个URL必须单独占一行,不能出现 "Disallow: /cgi-bin/ /tmp/"这样的病句。同时在一个 记录中不能出现空行,这是因为空行是多个记录分割的标志。

User-agent行指出的是Robot或其他代理的名称。在User-agent行,'*' 表示一个非凡的含 义---所有的robot。

下面是几个robot.txt的例子

在整个服务器上拒绝所有的robots
User-agent: *
Disallow: /

答应所有的robots访问整个站点
User-agent: *
Disallow:
或者产生一个空的 "/robots.txt" 文件。

服务器的部分内容答应所有的robot访问
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/

拒绝某一个专门的robot
User-agent: BadBot
Disallow: /


只答应某一个robot光顾
User-agent: WebCrawler
Disallow:
User-agent: *
Disallow: /


最后我们给出 http://www.w3.org/站点上的robots.txt
# For use by search.w3.org
User-agent: W3Crobot/1
Disallow:
User-agent: *
Disallow: /Member/ # This is restricted to W3C Members only
Disallow: /member/ # This is restricted to W3C Members only
Disallow: /team/ # This is restricted to W3C Team only
Disallow: /TandS/Member # This is restricted to W3C Members only
Disallow: /TandS/Team # This is restricted to W3C Team only
Disallow: /Project
Disallow: /Systems
Disallow: /Web
Disallow: /Team


使用Robots META tag方式

Robots META tag 答应HTML网页作者指出某一页是否可以被索引,或是否可以用来查 找更多的链接文件。目前只有部分robot实施了这一功能。

Robots META tag的格式为
%26lt;META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"%26gt;
象其他的META tag一样,它应该放在HTML文件的HEAD区
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;meta name="robots" content="noindex,nofollow"%26gt;
%26lt;meta name="description" content="This page ...."%26gt;
%26lt;title%26gt;...%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;body%26gt;
...

Robots META tag指令使用逗号隔开,可以使用的指令包括 [NO]INDEX 和[NO] FOLLOW。INDEX 指令指出一个索引性robot是否可以对本页进行索引;FOLLOW 指 令指出robot是否可以跟踪本页的链接。缺省的情况是INDEX和FOLLOW。例如
%26lt;meta name="robots" content="index,follow"%26gt;
%26lt;meta name="robots" content="noindex,follow"%26gt;
%26lt;meta name="robots" content="index,nofollow"%26gt;
%26lt;meta name="robots" content="noindex,nofollow"%26gt;

一个好的Web 站点治理员应该将robot的治理考虑在内,使robot为自己的主页服务, 同时又不损害自己网页的安全。