Robots Protocol
robots 协议,首先了解robots.txt
robots.txt 是搜索引擎中访问网站的时候要查看的第一个文件【是一种存放于网站根目录下的ASCII编码的文本文件】,它通常告诉网站搜索引擎的漫游器(又称网络蜘蛛):此网站中的哪些内容是不应该被搜索引擎的漫游其获取的,哪些是可以获取的。
在抓取网页时大部分网络爬虫会遵循Robot.txt协议,网站本身可以用两种方式声明不想被搜索引擎收入的内容,第一种方式,是在站点的根目录上增加一个纯文本文件/robots.txt , 另外一种表示方式是直接在html页面中使用Robots 的标签。
当一个搜索蜘蛛访问到一个网站时,它会首先检查该站点目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围,如果该文件不存在,所有的搜索蜘蛛将能够访问网站上的所有没有被口令保护的页面。
此文本文件中可以指定不同的网络爬虫能够访问的页面和禁止访问的页面,指定的由正则表达式表示,网络爬虫在采集这个网站之前,首先获取这个文本文件,然后解析其中的规则,再根据规矩来采集网站的数据。
Robots协议规则
User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图 告诉爬虫这个页面是网站地图
附上链接:【文件的具体写法】https://blog.csdn.net/God_XiangYu/article/details/100602297
robots不是一种规范,而是约定俗成的,所以无法保证网站的隐私,robots文件既不是命令,也不是防火墙,任何一个编辑文本的编辑器即可编辑。
相信很多人了解到此协议都是从爬虫开始,所以此协议又经常被称为机器人排除标准
由于是建立在网站和爬虫之间,总有些误区:
误区一:网站上的所有文件都需要蜘蛛抓取,那我就没必要在添加robots.txt文件了。如果该文件不存在,所有的搜索蜘蛛将默认能够访问网站上所有没有被口令保护的页面。
每当用户试图访问某个不存在的URL时,服务器都会在日志中记录404错误(无法找到文件)。
每当搜索蜘蛛来寻找并不存在的robots.txt文件时,服务器也将在日志中记录一条404错误,
所以你应该做网站中添加一个robots.txt。
误区二:在robots.txt文件中设置所有的文件都可以被搜索蜘蛛抓取,这样可以增加网站的收录率。
网站中的程序脚本、样式表等文件即使被蜘蛛收录,也不会增加网站的收录率,
还只会浪费服务器资源。因此必须在robots.txt文件里设置不要让搜索蜘蛛索引这些文件。
误区三:搜索蜘蛛抓取网页太浪费服务器资源,在robots.txt文件设置所有的搜索蜘蛛都不能抓取全部的网页。
如果这样的话,会导致整个网站不能被搜索引擎收录。
Despite the use of the terms “allow” and “disallow”, the protocol is purely advisory and relies on the compliance of the web robot. Malicious web robots are unlikely to honor robots.txt; some may even use the robots.txt as a guide to find disallowed links and go straight to them. While this is sometimes claimed to be a security risk, this sort of security through obscurity is discouraged by standards bodies. The National Institute of Standards and Technology (NIST) in the United States specifically recommends against this practice: "System security should not depend on the secrecy of the implementation or its components."In the context of robots.txt files, security through obscurity is not recommended as a security technique.
【翻译】
尽管使用了“允许”和“禁止”这两个术语,但该协议纯粹是建议性的,并且依赖于网络机器人的合规性。 恶意网络机器人不太可能尊重robots.txt; 有些人甚至可以使用robots.txt作为指导来查找不允许的链接并直接找到它们。 虽然这有时被认为是一种安全风险,标准机构不鼓励这种通过无声的安全措施。 美国国家标准与技术研究院(NIST)特别建议不要采用这种做法:“系统安全不应取决于实施或其组件的保密性。”在robots.txt文件的背景下,不推荐将通过隐藏实现安全性作为一种安全技术。