简述
在本文中将从爬虫规模出发,进行爬虫的“盗亦有道”分析
爬虫规模
首先我们来看一下
小规模,数据量小,爬取速度不敏感,一般使用Requests库,用于爬取一些网页。一般占到网络爬虫的百分之九十以上。(PS:如果有不太了解Requests库的可以参考以下博主前面的文章或者其他网络资源)
中规模,数据规模较大,爬取速度敏感,一般可以使用Scrapy框架,用于爬取网站和系列网站
大规模,搜索引擎,爬取速度关键,定制开发,作用爬取全网
“盗亦有道”
基本上所有的网站都是针对于人类的访问,但有了爬虫之后,程序员们可能由于各种原因会对服务器进行爬取,由于机器与人类的本质差别。两者对服务器的访问级别一般不在一个量级上。所以这样的话会大大增加服务器的负担。
而且,网络爬虫也可能带来一定的法律风险。
例如:服务器上的数据有产权所有。
网络爬虫获取数据后牟利将带来法律风险。
泄露其它人的隐私等等。
Robots协议
有上文的种种我们可以知道,在使用爬虫的时候,如果使用不当就将可能带来严重的后果,所以提出了Robots协议,这个协议主要是用于网站维护者告知使用爬虫的人,维护的网站上那些数据是可以合法的爬取的,那些是爬虫使用者不应该去爬取的(PS:当然爬取者完全可以不遵守协议,那么后果就将自负了),robots协议在网站根目录下的robots.txt给出。。作为互联网开发中的一员我觉得我们应当去遵守这些规则下面我们简单的介绍一下robots协议的规则。
robots协议举例
例1. 禁止所有搜索引擎访问网站的任何部分下载该robots.txt文件
User-agent: *
Disallow: /
例2. 允许所有的robot访问
(或者也可以建一个空文件 “/robots.txt” file)
User-agent: *
Disallow:
例3. 禁止某个搜索引擎的访问
User-agent: BadBot
Disallow: /
例4. 允许某个搜索引擎的访问
User-agent: baiduspider
Disallow:
User-agent: *
Disallow: /
例5. 一个简单例子
在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。
需要注意的是对每一个目录必须分开声明,而不要写成 “Disallow: /cgi-bin/ /tmp/”。
User-agent:后的* 具有特殊的含义,代表”any robot”,所以在该文件中不能有”Disallow: /tmp/” or “Disallow: .gif”这样的记录出现.
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
更多的了解robots协议可以参考一下链接
http://www.robotstxt.org/robotstxt.html
本博客关联课堂教程链接
来源:中国大学MOOC
相关大学:北京理工大学
讲解人:嵩天副教授
课程:Python网络爬虫与信息提取
链接:http://www.icourse163.org/learn/BIT-1001870001?tid=1002236011