3

网络爬虫的盗亦有道

 1 year ago
source link: https://www.fdevops.com/2022/08/31/reptile-31160
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

网络爬虫的盗亦有道

兰玉磊 • 1天前 • 其他 • 阅读 17

网络爬虫引发的问题

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

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

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

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

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

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

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

  • 来源审查:通过判断User-Agent进行限制,检查来访的HTTP的协议头中的User-Agent域,只响应浏览器和一些友好的爬虫访问。
  • 发布公告:Robots协议,这个协议是告知所有网络爬虫,对本站点的爬取策略,要求爬虫遵守此协议。当然这个公告是没有办法要求爬虫去强制遵守的,需要爬虫自己本身的一个自觉性。

网络爬虫的分类

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

  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协议的文件,那么可以说,这个网站是允许所有爬虫来爬虫所有的资源。

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2022/08/31/reptile-31160
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK