摘要:随着大数据时代的到来,数据已经渗透导生活和工作的各个领域,“网络爬虫”在大数据时代是一种不可或缺的高效获取海量数据的重要工具。 爬虫作为一种计算机技术就决定了它的中立性,因此爬虫本身在法律上是不被禁止的,但是利用爬虫技术获取数据这一行为是具有违法甚至犯罪的风险的。

1.网络爬虫和相关基本概念

1.1网络爬虫的概念

网络爬虫(又称为网页蜘蛛,网络机器人)是一种按照一定的规则,自动的抓取万维网信息的程序或脚本。

1.2爬虫的产生背景

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的搜索引擎Googel,百度和Yahoo!等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南,网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

1.3网络爬虫的应用领域

搜索引擎、新闻聚合、社交应用、舆情监控、行业数据等。

1.4Robots协议

robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。

1.5反爬虫技术与反反爬虫技术

爬虫技术与反爬虫技术就像猫鼠游戏,同时这个游戏中暗藏要承担法律责任的风险。常见的反爬虫机制与反反爬虫应对机制应如下:
登陆验证->应对方案1:抓包模拟登陆,伪造请求头后通过构造一系列Get和Post请求模拟浏览器的行为骗过服务器后获取到网站的Cookie(微博为例)。
->应对方案2:使用自动化测试工具操纵浏览器模拟人的行为,真实的操纵浏览器打开一个网站并登陆后存储Cookies。由于爬虫采集的页面较多,一般使用无头(没有界面)的浏览器Phantojs。
设置验证码->应对方案1:对接云打码平台,平台会直接提供对接所需要的脚本很方便。
->应对方案2:训练专用的验证码识别模型,由于一般没有相应的数据集需要手动标注工作量巨大,在爬虫需要长期大量的爬取一个网站时这个方案才合适(示例)。
账号限制访问页面数->应对方案:收集网站账号,构建账号池并批量进行模拟登陆存储Cookies,构建Cookies池。
限制IP访问频次->应对方案:构建免费IP池(从提供免费IP的网站定时抓取)或使用付费IP代理
限制会话访问时间持续长度->应对方案1:定时睡眠
->应对方案2:加大账号池,分批次使用账号从而做到持续采集。
投喂脏数据或虚假数据->目前没有有效的解决方案。

2.网络爬虫的合法性

2.1爬虫合法性初步探讨

网络爬虫领域目前还属于拓荒阶段,虽然互联网世界已经通过自己的游戏规则建立起一定的道德规范(Robots协议,全称是“网络爬虫排除标准”),但法律部分还在建立和完善中,也就是说,现在这个领域暂时还是灰色地带。
“法不禁止即为许可”,如果爬虫就像浏览器一样获取的是前端显示的数据(网页上的公开信息)而不是网站后台的私密敏感信息,就不太担心法律法规的约束,因为目前大数据产业链的发展速度远远超过了法律的完善程度。
在爬取网站的时候,需要限制自己的爬虫遵守Robots协议,同时控制网络爬虫程序的抓取数据的速度;在使用数据的时候,必须要尊重网站的知识产权(从Web 2.0时代开始,虽然Web上的数据很多都是由用户提供的,但是网站平台是投入了运营成本的,当用户在注册和发布内容时,平台通常就已经获得了对数据的所有权、使用权和分发权)。如果违反了这些规定,在打官司的时候败诉几率相当高。

2.2网络爬虫对网站的危害

网络爬虫在提升工作效率的同时,也会带来一些负面影响,比如侵占带宽资源,增加网站负荷量甚至会造成网站瘫痪,破坏计算信息系统,侵犯公民个人信息,侵犯商业秘密等。
从网站业务安全的角度,纵容这些伪装者的危害有以下几点:
1)核心数据被爬取
核心内容被爬取会极大影响网站和网页本身在搜索引擎上的排名,低排名会导致访问量降低和销量、广告收益降低的恶性循环。
在内容为王、用户粘性不高的今天,核心内容很大程度上会影响网站在用户心目中的价值。若网站以文本为商品作为盈利点,那恶意爬虫更是影响 KPI 的罪魁祸首。

2)注册用户被扫描
如果在网站的注册页面输入一个已注册过的号码,通常会看到“该用户已注册”的提示,这一信息也会在请求的 response 中显示,一些网站的短信接口也有类似逻辑,注册用户和非注册用户返回的字段和枚举值会有不同。利用这一业务逻辑,恶意爬虫通过各类社工库拿到一批手机号后可以在短时内验证这批号码是否为某一网站的注册用户。
这个数据有什么利用价值?除了很明显的违法欺诈外,攻击者可以将数据打包出售给竞争对手或感兴趣的数据营销公司,完善他们的精准营销数据。

3)其他危害
点击欺诈:点击欺诈会给网站造成实实在在的利益损失。投放广告通常是为了触达符合网站定位的潜在消费者,爬虫造成的点击欺诈使得广告的点击率虚高,使得网站承担了本不应承担的点击费用。从运营角度出发,访问量无原因的忽高忽高也不利于分析广告投放效果。

网站带宽负担:对于带宽有限的中小型网站,爬虫可能会降低网页加载速度,影响真实用户的访问体验。

2.3网络爬虫入罪案例

2.3.1非法获取计算机信息系统数据罪

非法获取计算机信息系统数据罪是《中华人民共和国刑法修正案(七)》增设的一个罪名,是指违反国家规定,侵入国家事务、国防建设、尖端科学技术领域以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,情节严重的行为。从以往的生效判例来看,涉案人员主要是通过木马、病毒等黑客渗透方式非法获取计算机系统数据。

近期,从司法实践来看使用爬虫程序爬取数据的方式亦存在成立此罪的较大风险。

2.3.2绕过网站反爬措施获取公开信息入罪

(1)基本案情
2018年,北京市海淀区人民法院对一起利用“爬虫技术”侵入计算机系统抓取数据案做出判决,该案被“互联网法律大会”列为全国首例利用“爬虫技术”侵入计算机系统抓取数据案。
据公开的判决信息显示,被告单位CEO、技术负责人等公司主管人员共谋,采用技术手段抓取被害单位北京某网络技术有限公司服务器中存储的视频数据,并破解被害单位的防抓取措施,使用“tt_spider”文件实施视频数据抓取行为,造成被害单位损失技术服务费人民币2万元。
经鉴定,“tt_spider”文件中包含通过分类视频列表、相关视频及评论等接口对被害单位服务器进行数据抓取,并将结果存入到数据库中的逻辑。在数据抓取的过程中使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制。
法院经审理后认为,被告单位违反国家规定,采用技术手段获取计算机信息系统中存储的数据,情节严重,其行为已构成非法获取计算机信息系统数据罪;公司CEO、技术负责人等作为直接负责的主管人员及其他直接责任人员,分别被法院判处有期徒刑九个月至一年不等的刑罚及人民币三万元至五万元不等的罚金。
(2)释法说理.
被告单位的犯罪行为主要是“破解北京某网络技术有限公司的防抓取措施,使用‘tt_spider’文件实施视频数据抓取行为,造成被害单位北京某网络技术有限公司损失技术服务费人民币2万元”。
具体表现在“在数据抓取的过程中使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制”。主审法官在其撰写的文章中提及,被告单位及被告人在数据抓取过程中,采取了规避或突破被害单位反“爬虫”安防措施的技术手段,未经许可进入被害单位的计算机系统,属于非法获取计算机信息系统数据罪中“侵入”行为,从而构成非法获取计算机信息系统数据罪。

2.3.3采用爬虫获取内部公开数据出罪

(1)基本案情
犯罪嫌疑人于某系某互联网公司网络工程师,该公司内部使用一款企业即时聊天App作为内部人员沟通交流的办公软件,员工通过其个人账号、密码使用手机登陆后,如有工作需要,可与公司内任一员工即时聊天,并可点击查看公司员工备注的姓名、员工号、手机号码、职位职级以及公司组织架构等信息,App后台会将访问记录予以记录,公司内部制度规定非因工作需要不得随意查看其他员工的数据信息。
2018年2月,于某对该聊天软件的源代码进行反向编译,查找到该聊天工具传送员工信息数据的服务器接口,后编写了专门的爬虫程序,在其使用其账号密码登陆App后,该程序自动运行,向该接口循环发送访问请求,成功从该隐藏接口爬取到6万余名员工的姓名、员工号、手机号码、职位职级以及公司组织架构等信息。

海淀区人民检察院承办检察官认为,于某的行为不构成非法获取计算机信息系统数据罪。
(2)释法说理
本案中,于某对公司聊天即时APP具有访问权限,可以使用点击查看的方式获取APP内数据,而于某通过对聊天软件的源代码进行反向编译,查找到该聊天工具传送员工信息数据的服务器接口,后采取编写爬虫程序方式获取批量数据。其行为从外观上来看,似乎也属违背了权利人的意愿收集数据,但承办检察官认为于某的行为既不符合“侵入+获取”,也不符合“利用其他技术手段+获取”,且其获取的数据属于其职权范围内可以知晓的内容,只是获取数据的表现形式及访问效率与在App内访问有所差别,但无本质不同。于某的行为不构成非法获取计算机信息系统数据罪。

2.4分析总结

由于现有法律不完善,虽然各界对于“爬虫入刑”问题尚存有争议,但已生效判决对于处理类似问题具有一定的参考价值。在日常经营中要尽量避免因为爬虫技术的使用引发类似的争议问题。
在此总结使用爬虫技术时的注意事项:
1)尽量避免违背计算机信息系统权利人的意愿爬取数据
2)尽量避免给目标服务器带来过大的负荷量,造成损害
3)仔细甄别获取数据类型,谨慎处理包含公民个人信息、商业秘密等内容的信息
此类案件中,除了涉及非法获取计算机信息系统数据罪,还可能涉及到侵犯公民个人信息罪、侵犯商业秘密罪、破坏计算机信息系统罪、侵犯著作权罪等罪名,一般会依照想象竞合原则,择一重处罚。

3.结语

技术本无对错,但使用技术时侵犯了他人隐私或对他人的财产和人身安全造成了损失要负相关的法律责任。每一个爬虫工程师都应该熟知爬虫可能带来的危害,这样才能既不损伤他人的利益同时保护自身的安全。

4.参考文献

https://blog.csdn.net/XIAOYUE3035/article/details/99847829
https://www.cnblogs.com/jiangchunsheng/p/11950600.html
案例:http://kuaibao.qq.com/s/20190918A0KA2B00?refer=spider

网络爬虫的合法性讨论相关推荐

  1. 第一章 爬虫(认识网络爬虫)

    第一章      认识网络爬虫 1.1 什么是网络爬虫 网络爬虫: 一种按规则,自动请求网站并提取网页数据的程序或脚本 网络爬虫分类(按照系统结构和技术划分): 1.通用网络爬虫 2.聚焦网络爬虫 3 ...

  2. 《自然语言处理实战入门》第二章: NLP前置技术----网络爬虫简介

    我们平时做自然语言处理,机器学习,都是希望能够有丰富的训练数据集,这样才能获取质量上乘的模型.在大数据时代,处理数据已经不再是是问题了,spark,hadoop ,Elastic search提供了海 ...

  3. Python网络爬虫简介与环境配置

    第一章 Python网络爬虫简介与环境配置 1.1 网络爬虫简介 随着互联网的快速发展越来越多的信息被发布到互联网上,这些信息被嵌入到各种各样的网页结构及样式中.虽然搜索引擎可以辅助用户搜索这些网页信 ...

  4. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字

    python百度百科爬虫 网页源代码分析 编程实现 小结 网页源代码分析 首先找一下需要爬取的正文: 对应的源代码有两个地方: 上图往后翻会发现省略号,所以下面这张图才是我们需要爬取的部分: 编程实现 ...

  5. python网络爬虫初识_python爬虫(一)初识爬虫

    什么是爬虫? 中文名(网络爬虫) 外文名(web crawler) 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程 ...

  6. 开发网络爬虫应该怎样选择爬虫框架?

    2019独角兽企业重金招聘Python工程师标准>>> 有些人问,开发网络爬虫应该选择Nutch.Crawler4j.WebMagic.scrapy.WebCollector还是其他 ...

  7. java爬虫面试题_使用Java实现网络爬虫

    网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  8. 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...

    点这里 阅读目录 用 AngularJS(以及其它 JavaScript 框架)开发的 Web 站点不支持爬虫的抓取 解决方案 为什么公开我们的解决方案 实现 AngularJS 服务 结论   Pr ...

  9. 网络爬虫初步:从一个入口链接开始不断抓取页面中的网址并入库

    前言: 在上一篇<网络爬虫初步:从访问网页到数据解析>中,我们讨论了如何爬取网页,对爬取的网页进行解析,以及访问被拒绝的网站.在这一篇博客中,我们可以来了解一下拿到解析的数据可以做的事件. ...

最新文章

  1. GitLab 上市,市值高达 149 亿美元!GitHub 的头号劲敌来了
  2. 2.JS执行上下文和变量对象
  3. 零基础学oracle pdf_零基础怎么学手绘插画!
  4. JDK和cglib动态代理代码示例
  5. 区块链基础学习(一)
  6. 95-080-040-源码-启动-start-cluster.sh
  7. 《Essential C++》笔记之设定头文件
  8. IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件...
  9. log4j + flume 1.6 集成
  10. oracle精度说明符1~38_数据库显示精度说明符过多
  11. 夜间灯光数据dn值_一种基于NDBI的城市夜间灯光数据去饱和方法与流程
  12. 数字滤波器原理及应用 借助matlab,数字滤波器原理及应用(借助MATLAB)
  13. 2017吉比特校招一个编程笔试题
  14. 科学计算机中的dms在哪,计算机视觉方向简介 | 驾驶员监控DMS
  15. Mybatis之Mapper代理开发方式
  16. 制作启动盘的工具 Universal USB Installer (UUI) Screenshots
  17. 靓号,java正则表达式的实现
  18. informatica 用到的组件
  19. C语言中fclose函数
  20. kvm 安装 windows 虚拟机

热门文章

  1. 二三四层交换机的区别
  2. 寒冬+裁员,互联网行业还好吗?
  3. 五险一金、社保卡、公积金卡...的使用
  4. HTTP/HTTPS协议中常用的默认端口号
  5. Excel取消合并自动填充
  6. 润和软件发布基于OpenHarmony的HiHopeOS操作系统
  7. 论文是否能有两个第一作者或通讯作者?
  8. 米哈游 春季校园招聘 三月内推开始啦,内推码NTAHEGf
  9. 服务器换cpu要重装系统吗,换cpu要重装系统吗
  10. KDD Cup 2022风力发电baseline—使用因果膨胀卷积进行时序预测