当我们真正接触了爬虫之后会发现爬虫的功能十分强大,但是我们并不能为所欲为的使用爬虫,爬虫需要遵循robots协议,该协议是国际互联网界通行的道德规范,每一个爬虫都应该遵守,本节我们就来介绍一下爬虫协议。
十二年前,BE公司利用爬虫抓取了eBay等多个大型拍卖网站的商业信息,并把这些信息放置在自己的网站上供用户浏览,获得了客观的网站流量,对于eBay来说,BE的爬虫每天超过十万次的访问自家的服务器,造成了很大的压力,因此向BE提出禁止抓取,但是BE因为利益的原因而无视这个要求,之后eBay便把BE告上法庭,经过联邦法官的取证后,认定BE侵权,禁止了BE的行为。
2012年8月29日,上线十日便轻松登顶国内第二大搜索引擎的奇虎360搜索遭到百度的起诉,百度认为360公司违反Robots协议抓取百度知道、百度百科等数据,而法庭也尊重Robots协议,因此360赔偿百度70万元, 由此可见,Robots协议在互联网业界和司法界都是得到认可的,我们在使用的时候也要严格遵循此协议。
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,该协议属于一个规范,并不能保证网站的隐私。
Robots协议是国际互联网界通行的道德规范,基于以下原则:
1. 搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权。
2. 网站有义务保证其使用者的个人信息和隐私不被侵犯。
在使用爬虫的时候我们应当注意一下几点:
1. 拒绝访问和抓取有关不良信息的网站。
2. 注意版权意识,对于原创内容,未经允许不要将信息用于其他用途,特别是商业方面。
3. 严格遵循robots.txt协议。
4. 爬虫协议查看方式
大部分网站都会提供自己的robots.txt文件,这个文件会告诉我们该网站的爬取准则,查看方式是在域名加"/robots.txt"并回车。
我们来看一下百度的爬虫协议:
在上面我们可以看到,百度的爬虫协议中对不同的访问者有着不同的要求。
User-agent为访问用户,出现多个User-agent表示该网站对不同的用户提供不同的准则。例如该网站对于普通使用者为:
表示禁止所有搜索引擎访问网站的任何部分,而对于这种的:
表示只禁止该搜索引擎访问部分根目录下的文件。
常使用的规范如下:
User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符。
Disallow: /baidu/ 这里定义是禁止爬寻baidu目录下面的目录。
Disallow: /dotcpp/*.htm 禁止访问/dotcpp/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址。
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片。
Disallow:/dotcpp/dotcpp.html 禁止爬取dotcpp文件夹下面的dotcpp.html文件。
Allow: /dotcpp/ 这里定义是允许爬寻dotcpp目录下面的目录。
Allow: /dotcpp 这里定义是允许爬寻tmp的整个目录。
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片。
Sitemap: 网站地图,告诉爬虫这个页面是网站地图。
在使用爬虫之前,如果是使用公司引擎或者大型的爬虫引擎,那么一定要查看一下该网站的相关robots.txt信息,合理的使用网络爬虫,避免给网站拥有者以及个人造成不必要的麻烦,下一节我们正式踏入爬虫的学习。
本文固定URL:https://www.dotcpp.com/course/317
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程