用robots.txt来告诉搜索引擎的网络蜘蛛不要收录网站中的某些内容

robots.txt概述

一旦网站对外开放,并登陆到搜索引擎中,网络蜘蛛会定期来光顾采集。为了让搜索引擎不要把注意力分散到一些过期的内容上,或者不让搜索引擎抓取那些应用程序产生的海量虚拟页面,再或者出于低调的考虑,可以通过robots.txt文件来约束网络蜘蛛的行为。

robots.txt应该以小写命名,而且用ASCII编码,主要作用是告诉网络蜘蛛不要采集哪些内容

robots.txt不算一个严格的标准,是网站和搜索引擎多年来约定俗成的结果。有关这个协议的相关文献如下。

robots.txt的格式和示例

robots.txt内容格式非常简单,用文本文件的每一行代表一个约定。

  • 井号(#)开头的文本行代表注释。
  • User-agent: 开头的文本行代表网络蜘蛛的名字,星号(*)代表所有蜘蛛。
  • Disallow: 开头的文本行代表禁止当前网络蜘蛛访问的目录或文件路径,空白表示都不禁止,不支持通配符。

以下是一些常见的robots.txt示例。

让所有搜索引擎的网络蜘蛛访问所有的网站内容:

User-agent: *
Disallow:

拦截所有搜索引擎的网络蜘蛛,不让他们访问任何内容:

User-agent: *
Disallow: /

注意,Disallow是不支持通配符的,下面这种写法很多网络蜘蛛是不能识别的,不要这么写。

Disallow: *  # DO NOT USE! Use "/" instead.

让所有搜索引擎的网络蜘蛛不去访问指定的目录:

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/

让所有搜索引擎的网络蜘蛛不访问某目录,但是允许某个搜索引擎访问:

# robots.txt for http://www.example.com/

User-agent: *
Disallow: /cyberworld/map/

# Cybermapper knows where to go.
User-agent: cybermapper
Disallow:

让搜索引擎的网络蜘蛛不让我某指定文件:

User-agent: *
Disallow: /directory/file.html

robots.txt扩展协议

在上述robots.txt基本协议之外,还存在一定的扩展协议。不过,并不是所有网络蜘蛛都兼容这些扩展协议。扩展部分能否被网络蜘蛛接受,要详细阅读各个搜索引擎的定义。

  • Sitemap: 开头的文本行可以指定Sitemap文件的位置。
  • Allow: 开头的文本行可以指定允许网络蜘蛛采集内容的文件或者目录的路径。
  • Crawl-delay: 开头的文本行指定同一个网络蜘蛛两次采集网站内容的时间间隔,单位是秒。
  • Request-rate: 开头的文本行指定同一个网络蜘蛛每多少秒采集一次网页和采集时间段,例如1/5 0600-0845。
  • Visit-time: 开头的文本行指定每天允许网络蜘蛛采集的时间段,格式为mmss-mmss,例如0600-0845。

另外,在网页中增加名字为“robots”的meta标签,也可以让某些网络蜘蛛不采集这一页。不过,这也只是某些网络蜘蛛认同,不是大家都认同的标准。示例如下。

<meta name="robots" content="noindex,nofollow" />

作者: 蚕估 [Zegoo]

波波坡原创文章 链接:http://www.bobopo.com/article/code/robots_txt.htm

标签: ,

关键词: robots.txt, 搜索引擎, 网络蜘蛛, 采集, 抓取, 禁止采集, User-agent, Disallow, 格式, 扩展, Sitemap, Crawl-delay, Allow

创建日期: 2008-06-28

文库 微博 博客 作品 首页