当我们在搭建和维护网站的时候,都会希望自己的网页被各种搜索引擎收录,从而增加网页的曝光率。可是,如果有的网页上面有非常重要的秘密信息,并且不希望被spider抓取的时候该怎么办呢?这个时候,Robots协议就可以帮你实现禁止搜索引擎收录的功能。
什么是Robots协议?
Robots协议通常也称为爬虫协议、机器人协议等,是搜索引擎访问网站的时候要查看的第一个文件。它通常放在网站的根目录下面,如果没有定义Robots协议的话,就默认网站的所有内容都可以被搜索引擎访问。Robots协议以一个.txt文件的形式存在,告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
Robots协议可以屏蔽一些网站中比较大的文件(如:图片,音乐,视频)等,节省服务器带宽;还可以屏蔽站点的一些死链接。所以,从功能上来看,Robots协议有利于搜索引擎抓取网站内容,方便引导蜘蛛爬取页面。
robots.txt文件的基本格式
“robots.txt”文件里面定义了哪些页面是不想被搜索引擎收录的,文件里面一般包含一条或者多条记录,这些记录通过空行分开。文件里面可以使用#进行注解(与Hosts文件一样),该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow和Allow行,描述了哪些网页禁止或者允许被搜索引擎收录。
User-agent:
User-agent用于描述搜索引擎robot的名字,比如“ User-agent: * ”表示所有的搜索引擎种类都会受到”robots.txt”的限制;“User-agent: Baiduspider”表示只有百度搜索引擎会受到”robots.txt”的限制。需要说明的是,在”robots.txt”文件中,”User-agent:*”这样的记录只能有一条。若是在文件中加上”User- agent:Baiduspider”和若干Disallow、Allow行,则百度蜘蛛只会受到”User-agent:Baiduspider”后面的Disallow、Allow限制。
Disallow:
Disallow被用来表示不想被搜索引擎访问的URL,”Disallow:”表示允许访问该网站下的所有URL,在”robots.txt”文件里面,至少要有一条Disallow记录。如果”robots.txt”不存在或者为空文件,则对于所有的搜索引擎robot,该网站都是开放的。
Allow:
Allow用于描述希望被访问的URL,在Allow里面定义的URL 是允许robot访问的。例如”Allow:/zhuji”允许robot访问/zhuji.htm、/zhujicom.html、 /zhuji/com.html。通常情况下,一个网站的所有URL默认是Allow的,并且Allow通常会与Disallow一起搭配使用。
“*”and”$”符号
通配符”*”的主要功能是用来模糊匹配URL。比如,要拦截对所有以 private 开头的子目录的访问,就可以用“Disallow: /private*/”来实现,若是要拦截所有包含private的子目录,就可以用“Disallow: /*private*/”来实现。”$”用来指定与网址的结束字符进行匹配,比如说“Disallow: /*.asp$”代表禁止访问后缀名为asp的文件。
常见robots.txt举例
这里列举了robots.txt文件里面的一些常见的例子:
1、允许所有的robot访问 (或者也可以建一个空文件“/robots.txt”file)
User-agent: *
Allow: /
2、禁止百度搜索引擎的访问
User-agent: Baiduspider
Disallow: /
3、禁止所有搜索引擎访问网站的任何部分
User-agent: *
Disallow: /
4、允许抓取网页和gif格式图片
Allow: .gif$
5、禁止爬寻ABC目录下面的目录
Disallow: /ABC/
6、禁止爬寻ABC的整个目录
Disallow: /ABC
7、网站地图 告诉爬虫这个页面是网站地图
Sitemap:
robots工具
不同的搜索引擎对于robots的解读可能有着细微的差别,Google与百度都分别在自己的站长工具中提供了robots工具,站长可以通过这个工具创建robots文件,并对其进行检测和规则校验。