站点图标 兰玉磊的个人博客

网络爬虫的盗亦有道

网络爬虫引发的问题

网络爬虫可以让我们狠方便的获取网络上的内容,但是如果使用不当也会有一定的法律风险问题。

由于服务器上的数据往往都是有产权归属的,如果网络爬虫获得这些数据,并将其进行商业化牟利,那它将会给你带来法律风险。

违反“爬虫协议”案 奇虎360赔偿百度70万元

对于一个网站来说,默认是只允许人去访问的,并且网站的服务器资源也是根据人访问的情况来定义,当我们过度的去使用爬虫访问的时候,就会造成网站服务器的压力过载,使其瘫痪,导致连人都无法再次去访问网站。毕竟计算机的访问速度比人要快的多,因此对于被爬取方来说,过度的被爬取数据是一个狠不好的事情。还有就是如果爬虫程序写的不够完善,也会对网站服务器造成巨大的资源开销。

网络爬虫可能具备突破简单的访问控制的能力,获得被保护的数据,从而泄漏个人隐私。

通过上面的介绍,我们了解到了网络爬虫会引发的一些问题,因此,在使用爬虫的过程,我们需要遵守一些指定的规则。

当然这些规则都不是强制性的,因此一些技术能力较好的公司,会有自己的一套网络爬虫的限制,例如:

网络爬虫的分类

网络爬虫,可以分为三个大的类型。

  1. 爬取单独页面的爬虫,小规模,数据量小,爬取速度不敏感,可以直接使用requests库实现功能。
  2. 爬取整个网站或者爬取系列网站的爬虫,中规模,数据规模较大,对爬取速度较为敏感,这种类型的爬虫需要使用更加专业的爬虫工具,如:Scrapy库。
  3. 爬取全网的爬虫,规模大,一般是搜索引擎会用到这种类型的爬虫,爬取速度非常的关键,这种类型的爬虫,只可能是定制开发,不可能有通用的第三库来实现的。

Robots协议

Robots协议是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络爬虫,此网站中的哪些内容是不应被搜索引擎的网络爬虫获取到,哪些是可以被网络爬虫获取到。

因为一些系统中的URL是大小写敏感的,所以Robots的文件名(robots.txt)应统一为小写。

robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的网络爬虫访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用Robots元数据(Metadata,又称元数据)。

网络爬虫需自动或人工识别robots.txt,然后在进行内容的爬取。

Robots协议并不是强制性的,而只是约定俗成的,所以并不能保证网站的数据安全性。

Robots协议是建议,但非约束性,因此网络爬虫可以不遵守,但存在法律风险。

简单介绍以下京东的Robots协议:

京东的Robots协议

User-agent: *   # 所有的网络爬虫都需要遵守
Disallow: /?*   # 不允许爬取此类的url数据
Disallow: /pop/*.html   # 不允许爬取此类的url数据 
Disallow: /pinpai/*.html?*   # 不允许爬取此类的url数据
User-agent: EtaoSpider   # 下面的四种爬虫不允许爬取JD的任何数据
Disallow: / 
User-agent: HuihuiSpider 
Disallow: / 
User-agent: GwdangSpider 
Disallow: / 
User-agent: WochachaSpider 
Disallow: /

Robots协议的基本语法:

* 代表所有
/ 代表网站根目录
User-Agent 请求类型
Disallow 不允许访问的url

还有许多的网站的Robots协议,有兴趣的可以去看看:

百度的Robots协议

新浪新闻的Robots协议

腾讯的Robots协议

腾讯新闻的Robots协议

国家教育部的Robots协议(无Robots协议)

如果说一个网站没有Robots协议的文件,那么可以说,这个网站是允许所有爬虫来爬虫所有的资源。

退出移动版