Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站经过Robots协议告诉搜索引擎哪些页面能够抓取,哪些页面不能抓取。html
一句话归纳就是,站点与搜索引擎爬虫之间的"君子协议"。数据库
通常有两种方法。bash
(1)在网站的根目录下放置一个文件,起名为 robots.txt ,其中规定了哪些内容能够爬取和哪些内容不想被抓取:网络
robots.txt 必须放在站点的根目录下,文件名必须小写。在 robots.txt 文件中,至少要有一条 Disallow 记录。若是 robots.txt 文件为空,则容许全部搜索引擎Robots都是开放的。ide
robots.txt 文件中的记录一般以一行或多行 User-agent 开始,后面加上若干 Disallow 行,解释以下:网站
a.User-agent:指定搜索引擎 robots 的名字,常见的有Baiduspider、Sogouspider、360Spider等。若是有多条 User-agent 记录,说明有多个robots会受到该协议的限制。至少要有一条 User-agent 记录。若是该值为 * ,则该协议对全部爬虫都有效。搜索引擎
b.Disallow:设置不但愿被访问到的URL,能够是完整的路径,也能够是相对路径。任何以 Disallow 开头的URL均不会被机器人访问到。好比:"Disallow:/product",则对 "/product01.html"和"/product/01.html"都不容许机器人访问。而"Disallow:/product/",则容许访问"/product01.html",但不能访问"/product/01.html"。spa
(2)在网页的Meta元标签里面设置 Robots Meta 标签:code
第一种方法是粗粒度的方法,设置 Robots Meta 的值来限制爬虫访问则是一种细粒度的方法,把限制细化到了每一个网页。htm
Content部分有6个指令选项:all、index、noindex、follow、nofollow、none,指令组合使用时用","分隔。
index:容许被搜索引擎索引进数据库;
follow:容许经过此网页的连接继续索引其它网页;
all:默认值,至关于"index,follow",容许被搜索引擎索引进数据库,容许经过此网页的连接继续索引其它网页;
noindex:不被搜索引擎索引进数据库,但搜索引擎能够经过此网页的连接继续索引其它网页;
nofollow:被搜索引擎索引进数据库,但搜索引擎不能够经过此网页的连接继续索引其它网页;
none:不被搜索引擎索引进数据库,且搜索引擎不能够经过此网页的连接继续索引其它网页,至关于"noindex,nofollow"。
Robots Meta标签放在页面的<head></head>中,告诉搜索引擎Robots如何抓取该页的内容。
<meta name="robots" content="none">:防止全部搜索引擎访问。
<meta name="Baiduspider" content="noindex,nofollow">:指定仅限制百度搜索引擎访问。
(以淘宝网为例:https://www.taobao.com/)
淘宝网的robots文件:https://www.taobao.com/robots.txt
User-agent: Baiduspider Allow: /article Allow: /oshtml Disallow: /product/ Disallow: / User-Agent: Sogouspider Allow: /article Allow: /oshtml Allow: /product Disallow: / #...略去其余爬虫详情 User-Agent: * Disallow: /
如上所示:
对于百度搜索引擎,不容许访问,限制效果图:
对于搜狗搜索引擎,容许访问,效果图:
能够看到,对比很明显,百度搜索引擎机器人被限制了。