限制搜索引擎收录网站
在有的时候,你申请了网站,而不想搜索引擎收录你的网站或者不想搜索引擎检索到网站的某个文件或者图片、视频之类的,就可以使用robots.txt来进行限制。
robots简介
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议,即robots.txt来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器,就可以创建和编辑它。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
robots.txt用法
User-agent: 用于描述搜索引擎spider的名字
在“robots.txt”文件中,如果有多条User-agent记录,说明有多个robot会受到该协议的约束。所以,“robots.txt”文件中至少要有一条User-agent记录。如果该项的值设为*(通配符),则该协议对任何搜索引擎机器人均有效。在“robots.txt”文件中,“User-agent:*”这样的记录只能有一条。Disallow: 同于描述禁止访问的路径
例如,Disallow: /home/news/data/,代表爬虫不能访问/home/news/data/后的所有URL,但能访问/home/news/data123,如果是Disallow:*/home/news/data,代表爬虫不能访问/home/news/data123、/home/news/datadasf等一系列以data开头的URL。前者是精确屏蔽,后者是相对屏蔽Allow: 用于描述允许访问的路径,网站所有URL默认都是Allow的,所以Allow通常搭配Disallow使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。
例如,Disallow:/home/后面有news、video、image等多个路径
接着使用Allow:/home/news,代表禁止访问/home/后的一切路径,但可以访问/home/news路径使用”*”and”$”:Baiduspider支持使用通配符”*”和”$”来模糊匹配url。
“*” 匹配0或多个任意字符
“$” 匹配行结束符。
举例
禁止所有搜索引擎访问网站的任何部分
User-agent:*
Disallow:/
仅禁止Baiduspider访问网站
User-agent:Baiduspider
Disallow:/
仅允许Baiduspider访问网站
User-agent:Baiduspider
Allow:/
User-agent:*
Disallow:/
禁止spider访问特定目录
User-agent:*
Disallow:/bin/
##多个目录需要指定多个Disallow
Disallow:/etc/
仅禁止访问网站中所有动态页面
User-agent:*
Disallow:/*?*
注:设置robots协议仅能保证正规遵守这种协议的搜索引擎不收录你的网站,坏的爬虫可以选择不遵守robots协议来爬取你的网站数据。