又一家数据公司被查,爬虫到底哪里有错?

2024-01-09 09:10

本文主要是介绍又一家数据公司被查,爬虫到底哪里有错?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

“ 阅读本文大概需要 5 分钟。”

9 月 6 日下午,多位业内人士称,杭州知名大数据服务公司杭州魔蝎数据科技有限公司,疑似被相关执法人员控制,其中一位周姓核心高管人员被警方带走。

以上是昨天技术圈传播的一则新闻,又一家数据公司被调查,很多数据从业者、爬虫开发者发出了“感叹” —— 「爬虫用得好,XX进得早;数据玩得溜,XX吃个够」。

魔蝎科技作为一家数据服务公司,曾在 2017 年一篇『爬虫凶猛:爬支付宝、爬微信、窃取现金贷放贷数据』的文章中,被指出存在开发使用恶意爬虫的行为。

当然关于魔蝎科技为什么被查,这个等待执法部门的调查结果即可,咱们不在这里无端猜测。

我今天要说的是关于爬虫的合法性,我希望通过一些案例来探讨:怎样做一个不触碰红线的爬虫开发者。

爬虫作为一种计算机技术,具有技术中立性,爬虫技术在法律上从来没有被禁止。爬虫的发展历史可以追溯到 20 年前,搜索引擎、聚合导航、数据分析、人工智能等业务,都需要基于爬虫技术。

但是爬虫作为获取数据的技术手段之一,由于部分数据存在敏感性,如果不能甄别哪些数据是可以爬取,哪些会触及红线,可能下一位上新闻的主角就是你。

如何界定爬虫的合法性,目前没有明文规定,但我通过翻阅大量文章、事件、分享、司法案例,我总结出界定的三个关键点:采集途径采集行为使用目的

数据的采集途径

通过什么途径爬取数据,这个是最需要重视的一点。总体来说,未公开、未经许可、且带有敏感信息的数据,不管是通过什么渠道获得,都是一种不合法的行为。

所以在采集这类比较敏感的数据时,最好先查询下相关法律法规,特别是用户个人信息、其他商业平台的信息 等这类信息,寻找一条合适的途径。

个人数据

采集和分析个人信息数据,应该是当下所有互联网都会做的一件事,但是大部分个人数据都是非公开的,想获得必须通过合法途径,可参见『网络安全法』第四十一条:

网络运营者收集、使用个人信息,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意...

也就是必须在提前告知收集的方式、范围、目的,并经过用户授权或同意后,才能采集使用,也就是我们常见的各种网站与 App 的用户协议中关于信息收集的部分。

相关反面案例:

8月20日,澎湃新闻从绍兴市越城区公安分局获悉,该局日前侦破一起特大流量劫持案,涉案的新三板挂牌公司北京瑞智华胜科技股份有限公司,涉嫌非法窃取用户个人信息30亿条,涉及百度、腾讯、阿里、京东等全国96家互联网公司产品,目前警方已从该公司及其关联公司抓获6名犯罪嫌疑人。

节选自 澎湃新闻:『新三板挂牌公司涉窃取30亿条个人信息,非法牟利超千万元』[1]

公开数据

从合法公开渠道,并且不明显违背个人信息主体意愿,都没有什么问题。但如果通过破解侵入等“黑客”手段来获取数据,那也有相关法律等着你:

刑法第二百八十五条第三款规定的“专门用于侵入、非法控制计算机信息系统的程序、工具”:

违反 Robots 协议

虽然 Robots 协议没有法规强制遵守,但 Robots 协议作为行业约定,在遵循之下会给你带来合法支持。

因为 Robots 协议具有指导意义,如果注明 Disallow 就说明是平台明显要保护的页面数据,想爬取之前应该仔细考虑一下。

数据的采集行为

使用技术手段应该懂得克制,一些容易对服务器和业务造成干扰甚至破坏的行为,应当充分衡量其承受能力,毕竟不是每家都是 BAT 级。

高并发压力

做技术经常专注于优化,爬虫开发也是如此,想尽各种办法增加并发数、请求效率,但高并发带来的近乎 DDOS 的请求,如果对对方服务器造成压力,影响了对方正常业务,那就应该警惕了。

如果一旦导致严重后果,后果参见:

《刑法》第二百八十六条还规定,违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,构成犯罪

所以请爬取的时候,即使没有反爬限制,也不要肆无忌惮地开启高并发,掂量一下对方服务器的实力。

影响正常业务

除了高并发请求,还有一些影响业务的情况,常见的比如抢单,会影响正常用户的体验。

数据的使用目的

数据使用目的同样是一大关键,就算你通过合法途径采集的数据,如果对数据没有正确的使用,同样会存在不合法的行为。

超出约定的使用

一种情况是公开收集的数据,但没有遵循之前告知的使用目的,比如用户协议上说只是分析用户行为,帮助提高产品体验,结果变成了出售用户画像数据。

还有一种情况,是有知识产权、著作权的作品,可能会允许你下载或引用,但明显标注了使用范围,比如不能转载、不能用于商业行为等,更不能去盗用,这些都是有法律明文保护,所以要注意使用。

其他情况就不列举了。

出售个人信息

关于出售个人信息,千万不要做,是法律特别指出禁止的,参见:

根据《最高人民法院 最高人民检察院关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》第五条规定,对“情节严重”的解释:

不正当商业行为

如果将竞品公司的数据,作为自己公司的商业目的,这就可能存在构成不正当商业竞争,或者是违反知识产权保护。

这种情况在目前涉及爬虫的商业诉讼案中比较常见,两年前比较知名的案件,“车来了” App 抓取其竞品 “酷米客” 的公交车数据,并展示在自己的产品上:

虽然公交车作为公共交通工具,其实时运行路线、运行时间等信息仅系客观事实,但当此类信息经过人工收集、分析、编辑、整合并配合GPS精确定位,作为公交信息查询软件的后台数据后,此类信息便具有了实用性并能够为权利人带来现实或潜在、当下或将来的经济利益,已经具备无形财产的属性。元光公司利用网络爬虫技术大量获取并且无偿使用谷米公司“酷米客”软件的实时公交信息数据的行为,实为一种“不劳而获”、“食人而肥”的行为,构成不正当竞争。

节选自『深圳市中级人民法院(2017)粤03民初822号民事判决书』

「爬虫法」即将出台

好消息是,相关办法已经在路上了。

5 月 28 日零点,国家互联网信息办公室发布了《数据安全管理办法》征求意见稿。

我也查阅了这份意见稿,里面对数据的获取、存储、传输、使用等都做了一些规定,包括关于爬虫行为的若干规定(还在征求阶段,因此后续可能会有变化)。

比如,第二章第十六条:

网络运营者采取自动化手段访问收集网站数据,不得妨碍网站正常运行;此类行为严重影响网站运行,如自动化访问收集流量超过网站日均流量三分之一,网站要求停止自动化访问收集时,应当停止。

第三章第二十七条:

网络运营者向他人提供个人信息前,应当评估可能带来的安全风险,并征得个人信息主体同意。下列情况除外:

节选自『数据安全管理办法(征求意见稿)』[2]

结语

在此声明:以上所有内容仅是个人分析,可能存在错误之处,不能作为任何依据,具体以相关法律法规为准。

希望能给各位爬虫开发者,也包括其他开发者一些启示:技术虽中立,使用有善恶,一定要合理合规、严格谨慎地使用技术。

本文属于原创,首发于微信公众号「面向人生编程」,如需转载请后台留言。

References

[1] 新三板挂牌公司涉窃取30亿条个人信息: https://www.thepaper.cn/newsDetail_forward_2362227[2] 数据安全管理办法(征求意见稿): http://www.moj.gov.cn/news/content/2019-05/28/zlk_235861.html

推荐阅读:
9月最新 Python 和其他语言工资对比,差距真大!
公众号文章批量下载爬虫实战!

640?wx_fmt=jpeg

这篇关于又一家数据公司被查,爬虫到底哪里有错?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/586613

相关文章

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate