【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一.什么是Robots协议
Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
一句话概括就是,站点与搜索引擎爬虫之间的"君子协议"。
二.如何使用Robots协议
一般有两种方法。
(1)在网站的根目录下放置一个文件,起名为 robots.txt ,其中规定了哪些内容可以爬取和哪些内容不想被抓取:
robots.txt 必须放在站点的根目录下,文件名必须小写。在 robots.txt 文件中,至少要有一条 Disallow 记录。如果 robots.txt 文件为空,则允许所有搜索引擎Robots都是开放的。
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"。
(2)在网页的Meta元标签里面设置 Robots Meta 标签:
第一种方法是粗粒度的方法,设置 Robots Meta 的值来限制爬虫访问则是一种细粒度的方法,把限制细化到了每个网页。
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">:指定仅限制百度搜索引擎访问。
三.Robots使用示例
(以淘宝网为例: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: /
如上所示:
对于百度搜索引擎,不允许访问,限制效果图:
对于搜狗搜索引擎,允许访问,效果图:
可以看到,对比很明显,百度搜索引擎机器人被限制了。
来源:oschina
链接:https://my.oschina.net/u/2862104/blog/1610061