我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。

案情介绍

谷米公司为开发和运营“酷米客”APP(提供实时公交查询服务),与公交公司达成合作,在公交车上安装定位器,以获取实时公交位置数据。谷米公司所收集的实时数据不仅被用于酷米客APP运营,还被提供给深圳市交委。深圳市交委基于信息化建设工作将该实时数据提供给深圳北斗应用技术研究院开展研究工作。经深圳市交委同意,深圳北斗应用技术研究院将深圳公交电子站牌数据测试接口开放给元光公司“车来了”(提供实时公交查询服务)APP应用。深圳公交电子站牌数据测试接口数据包含谷米公司所收集的公交车实时数据。但相比谷米直接从定位器上获取的实时数据,谷米提供给深圳市交委的数据存在一定的延迟。

2015年11月左右,邵凌霜、C某某为了提高元光公司开发的智能公交APP“车来了”在中国市场的用户量及信息查询的准确度,保证公司更好的经营,邵凌霜授意C某某,指使公司员工L某某、L某某、Z某某等人利用网络爬虫软件获取包括谷米公司在内的竞争对手公司服务器里的公交车行驶信息、到站时间等实时数据。Z某某负责编写爬虫软件程序;L某某负责不断更换爬虫程序内的IP地址,使用变化的IP地址获取数据,以防元光公司察觉;L某某负责编写程序,利用L某某设置的不同IP地址及Z某某编写的爬虫程序向谷米公司发出数据请求,大量爬取谷米公司开发的智能公交APP“酷米客”的实时数据,日均300万至400万条。起初,Z某某破解“酷米客”客户端的加密算法没有成功,C某某便出面聘请其他公司技术人员帮忙将谷米公司APP的加密系统攻破,使L某某、L某某、Z某某顺利爬取到谷米公司服务器里的大量公交车行驶实时数据。爬取的数据直接为元光公司所用,使该公司的智能公交APP“车来了”准确度提高。

谷米公司认为,元光公司通过技术手段非法获取其海量数据的行为构成不正当竞争,遂提起诉讼,请求判令:1. 元光公司立即停止获取、使用谷米公司实时公交位置数据的不正当竞争行为;2. 元光公司和邵凌霜等五人连带赔偿谷米公司经济损失人民币3000万元;3.连带赔偿谷米公司因维权所支付的合理费用人民币100万元;4.连带在新浪、腾讯等网站和《深圳特区报》、《楚天都市报》首页显著位置发表声明,公开赔礼道歉;5.连带承担案件的全部诉讼费用。

本案的核心争议在于数据爬取是否属于不正当竞争行为?破解加密算法的行为是否属于非法获取计算机信息系统数据罪?

法院观点

谷米公司系“酷米客”软件著作权人,对该软件所包含的信息数据的占有、使用、收益及处分享有合法权益。未经谷米公司许可,任何人不得非法获取该软件的后台数据并用于经营行为。其次,元光公司未经谷米公司许可,利用网络爬虫技术进入谷米公司的服务器后台非法获取数据,其数据来源不合法。再次,元光公司将爬取获得数据用于同质产品一种“不劳而获”、“食人而肥”的行为,具有非法占用他人无形财产权益,破坏他人市场竞争优势,并为自己谋取竞争优势的主观故意,违反了诚实信用原则,扰乱了竞争秩序,构成不正当竞争行为。法院综合考虑元光公司获取数据的范围、侵权行为持续时间、获取数据数量等因素确定元光公司赔偿谷米公司经济损失及合理维权费用共计50万元。

邵凌霜、C某某、L某某、L某某、Z某某违反国家规定,采用其他技术手段,获取计算机信息系统中储存的数据,情节特别严重,其行为已构成非法获取计算机信息系统数据罪。判决:一、邵凌霜犯非法获取计算机信息系统数据罪,判处有期徒刑三年,缓刑四年,并处罚金人民币十万元。二、C某某犯非法获取计算机信息系统数据罪,判处有期徒刑二年,缓刑三年,并处罚金人民币五万元。三、L某某犯非法获取计算机信息系统数据罪,判处有期徒刑一年六个月,缓刑二年,并处罚金人民币四万元。四、L某某犯非法获取计算机信息系统数据罪,判处有期徒刑一年四个月,缓刑二年,并处罚金人民币三万元。五、Z某某犯非法获取计算机信息系统数据罪,判处有期徒刑一年四个月,缓刑二年,并处罚金人民币三万元。

裁判文书参考:https://aiqicha.baidu.com/wenshu?wenshuId=493f49a5be1f9b234ad5106601c97bc5cf7d2802

案例分析

互联网时代,数据爬取行为极其常见。所谓爬取数据,就是按照一定的规则自动获取互联网站点的数据。与爬虫技术相伴相生的另一概念即是“robots 协议”(网络爬虫排除标准)。通过爬虫技术可以访问和收集互联网站点的诸多信息,为了维护互联网秩序,尊重信息提供者的意志和隐私等,信息提供者可以在自己的站点设置 robots 协议,以告知爬虫哪些信息是提供者不希望被爬取的。robots 协议是国际公认的互联网领域内通行标准,但其性质在法律上并没有明确的规定,因此一般也被视为“君子协议”。

信息提供者除了设置 robots 协议外,还可以就自己的系统或数据采取一定的技术保障措施。采取技术保障措施后,爬虫可能无法顺利爬取相关数据,或所爬取的数据需要经过解密才能使用。

本案中,法院判决未提及 robots 协议,但元光公司存在破解谷米公司 APP 加密系统的行为。

观点1:遵循 robots 协议公开爬取数据原则上不构成不正当竞争

基于现行的惯例,未被 robots 协议排除的数据属于互联网上的公开数据,任何人都有权访问和收集。因而,遵循 robots 协议的前提下公开爬取数据原则上既不会侵犯信息提供者的权利,也不会构成不正当竞争。反之,如果违反 robots 协议,强行爬取他人的数据,则可能被认定为违反诚实信用和商业道德,构成不正当竞争。

观点2:破解信息提供者所设技术措施爬取数据可能构成不正当竞争

信息提供者设置此类保障措施的目的有多种,如认为所涉信息具有秘密性或公开爬取可能对网站或应用造成占用进而影响系统正常运行。无论基于何种目的,既然信息提供者对自身的系统或数据设置了安全保障措施,也即意味着信息提供者并不希望他人爬取该等数据。其最终产生的效果和 robots 协议具有一致性。因此,破解信息提供者所设的技术措施爬取数据同样有可能被认为构成不正当竞争。

从谷米诉元光案判决中可以看出,法官并未提及 robots 协议,但不可忽视的事实是元光公司破解了谷米公司“酷米客”APP的加密系统,进而才顺利爬取到实时公交数据,这一事实属于本案的关键事实。存在加密系统说明元光公司所爬取的数据并非公开信息,也就意味着元光公司获取信息的手段具有非法性,进而才导致元光爬取数据用于自身APP的行为被认定属于不正当竞争行为。

基于谷米公司指控的侵权事实发生于现行反不正当竞争法施行之前,故谷米诉元光案中法官适用了修订前的反不正当竞争法第二条作为认定依据。在现行反不正当竞争法下,应优先考虑第十二条的适用。根据第十二条,使用爬虫技术,无论是否遵循 robots 协议,亦或是否破解信息提供者设置的技术措施,只要爬取数据的行为妨碍、破坏其他经营者合法提供的网络产品或者服务正常运营的,都有可能构成不正当竞争。在第十二条不适用的情况下,则适用现行反不正当竞争法第二条认定不正当竞争行为。

观点3:破解信息提供者所设技术措施爬取数据可能构成非法获取计算机信息系统数据罪

刑法第二百八十五条规定:违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

虽然“侵入”和爬虫常见的逆向还是有本质区别的,但法官通常不会这样认为,本案中,破解信息提供者所设的技术措施,获取计算机信息系统中的数据,是被视为具有刑事违法性,实施数据爬取行为的员工都被认定构成非法获取计算机信息系统数据罪(广州南山区人民法院:(2017)0305刑初153号)。

小结

爬虫中常见的逆向技术,在法庭上通常被认为是侵入,即便是两者有本质上的区别,但基于先行法律法规,法官也只能以侵入来定性,这样的案例不在少数,这是一个存在多年且可能还将持续多年的问题,只能期待相关法规完善的那天早点儿到来,此外爬虫工程师们需要注意的就是不正当竞争,如果自己的产品和爬取数据的目标产品属于同质产品,很容易被视为破坏他人市场竞争优势,并为自己谋取竞争优势有主观故意,违反诚实信用原则,扰乱竞争秩序,将会构成不正当竞争行为。

【k哥爬虫普法】爬取数据是否一定构成不正当竞争?的更多相关文章

  1. sumafan:python爬虫多线程爬取数据小练习(附答案)

    抓取 https://www.cnbeta.com/ 首页中新闻内容页网址, 抓取内容例子: https://hot.cnbeta.com/articles/game/825125 将抓取下来的内容页 ...

  2. Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战4)

    1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...

  3. python爬虫项目-爬取雪球网金融数据(关注、持续更新)

    (一)python金融数据爬虫项目 爬取目标:雪球网(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_ ...

  4. 【Spider】使用CrawlSpider进行爬虫时,无法爬取数据,运行后很快结束,但没有报错

    在学习<python爬虫开发与项目实践>的时候有一个关于CrawlSpider的例子,当我在运行时发现,没有爬取到任何数据,以下是我敲的源代码:import scrapyfrom UseS ...

  5. 【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

    实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart  难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install ...

  6. 爬虫必知必会(6)_提升scrapy框架爬取数据的效率之配置篇

    如何提升scrapy爬取数据的效率:只需要将如下五个步骤配置在配置文件中即可 增加并发:默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_ ...

  7. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  8. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...

  9. 总结:从Node爬取数据到前端图表展示

    最近寒假在家学习Node.js开发,光看书或者跟着敲代码还不够,得找一点有趣的事情来玩一玩,于是我决定写一个Node爬虫,爬取一些有意思或者说是有用的数据.这个决定只与我的兴趣有关,与Python或者 ...

  10. scrapy-redis实现爬虫分布式爬取分析与实现

    本文链接:http://blog.csdn.net/u012150179/article/details/38091411 一 scrapy-redis实现分布式爬取分析 所谓的scrapy-redi ...

随机推荐

  1. Scrum Master需要具备哪些能力和经验

    摘要:ScrumMaster对于产品负责人和开发团队来说,履行的是教练的职责,帮助团队和组织其他成员发展具有组织特色的.高效的Scrum方法,贯彻执行敏捷思想,激励团队持续提升,并不懈追求卓越的表现. ...

  2. 让 Java 打包缩小一大半,Solon v1.9.3 发布

    相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 - 10 倍. (更快) qps 高 2- 3 倍. (更高) 运行时内存节省 1/3 ~ 1/2. (更少) 打包 ...

  3. No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc

    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc ...

  4. JDK,Mysql,Tomcat Linux安装

    Linux的软件安装 JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep ja ...

  5. display:none和overflow:hidden的区别

    1.display:none 当将一个元素的display属性设置为none时,该元素将不会显示在网页中,并且不会占据任何空间.也就是说,该元素会完全隐藏,其他的元素会立即占据它原来的位置.该属性适用 ...

  6. webpack 从 0 到 1 构建 vue

    前端领域框架百花齐放,各种优秀框架出现(react,Vue,ag)等等框架.为了方便开发者快速开发, 开发对应的 cli 脚手架,来提高产出.然而初中级的前端工程师对项目里的 webpack 封装和配 ...

  7. Java 21 新特性:Unnamed Patterns and Variables

    Java 21中除了推出JEP 445:Unnamed Classes and Instance Main Methods之外,还有另外一个预览功能:未命名模式和变量(Unnamed Patterns ...

  8. C++岗位面试真题宝典 -- 操作系统篇

    2.1 Linux中查看进程运行状态的指令.查看内存使用情况的指令.tar解压文件的参数. 参考回答 查看进程运行状态的指令:ps命令."ps -aux | grep PID",用 ...

  9. AtCoder Beginner Contest 211 (C ~ E) 个人题解

    比赛链接:Here A.B题跳过 C - chokudai 题意: 给出一个字符串,问有多少个字串能构成 chokudai 这道题算是一个简单DP,只要计算某个位置对构成 chokudai 的贡献值即 ...

  10. Https 原理与工作流程及证书链校验

    本文为博主原创,未经允许不得转载: 目录 HTTP传输三大风险 安全通信原则 HTTPS定义 TLS/SSL 协议及加密算法 HTTPS工作流程 HTTPS协议和HTTP协议的区别 CA机构 证书链校 ...