我们身处大数据时代,数据趋于透明化、公开化,我们是否就可以拿着数据为所欲为?几年前很多人向往着"车厘子自由",同样在也有很多人也追求着技术自由。时至今日,我们可以在合法的范围内自由应用技术,那么对于爬虫的合法化,到底有哪些的法律可以来界定?
在很长的一段时间内,很多人谈爬虫色变,同时很多调侃爬虫的段子也应运而生。
因为兴趣学习了爬虫,后来也承担下了爬虫开发的工作。我也是被调侃大军中一员,甚至有一段时间我也都有点不敢开发爬虫了,现在想想,有点盲目了… 所以本篇文章着重于这一方面来展开,毕竟克服恐惧最好的方法就是去了解它。
我曾经跨过山和大海,也穿过人山人… 经过我的百度,发现和爬虫直接相关的法律条文就只有两条:
从上图可以看出,在上述法律中只要爬虫程序不破坏别人的服务器、不影响网站正常运行即可,一般通过限制请求的频率和线程数量就可以避开这个雷区。但是,往往最简单的问题都会伴随着一个经典案例。
2019年,某互联网公司200人因为一段爬虫程序被抓的消息传得沸沸扬扬,起因是一技术小哥对爬虫程序没有限制请求频率、并增加了线程数后进行测试,下班忘了停止程序,大半夜导致目标网站的服务器宕机了,然后被顺着网线找到了… 当然,最后200人大多数都没事,技术小哥承担了主要责任,而一开始技术小哥由于缺乏这一方面的法律认知,抱着"技术无罪"的心态,导致这个事情走向了极坏的结果。
从这个案例可以明白,限制请求频率是多么重要!!正如我前面文章所写,开发爬虫要不仅要考虑本身程序性能,更要考虑网站用户数量级对应的网站服务器规模和性能,有的网站的服务器可能只有一台,还是服务共用的。
除了上述的法律规定了爬虫开发规范,是否还有其他的法律可以间接影响着爬虫的应用。
《刑法》第二百八十六条还规定,违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,构成犯罪,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。而违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,也构成犯罪,依照前款的规定处罚。
非法入侵系统,这不是黑客的工作么,这个和爬虫程序有啥关系,爬虫又不能进入到后台系统?网站的反爬技术一般是通过参数加密等手段,类似于操作系统的密码,以此来阻止爬虫获取数据,在广义上爬虫破解反爬技术也算是非法入侵的一种。而爬虫衍生出来的产业:验证码识别服务贩卖、SEO,如果为不法分子提供了相关的服务,同样也算是非法入侵。
经典案例:
《刑法》修正案(九)中将刑法第二百五十三条进行了修订,明确规定违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,构成犯罪;在未经用户许可的情况下,非法获取用户的个人信息,情节严重的也将构成“侵犯公民个人信息罪”。 根据《最高人民法院 最高人民检察院关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》第五条规定,对“情节严重”的解释,(1)非法获取、出售或者提供行踪轨迹信息、通信内容、征信信息、财产信息五十条以上的;(2)非法获取、出售或者提供住宿信息、通信记录、健康生理信息、交易信息等其他可能影响人身、财产安全的公民个人信息五百条以上的;(3)非法获取、出售或者提供第三项、第四项规定以外的公民个人信息五千条以上的便构成“侵犯公民个人信息罪”所要求的“情节严重”。
个人信息数据是万万碰不得的。非法获取和出售个人信息和隐私数据至少三年起步。
经典案例:
《反不正当竞争法》第九条,以不正当手段获取他人商业秘密的行为即已经构成侵犯商业秘密。而后续如果进一步利用,或者公开该等信息,则构成对他人商业秘密的披露和使用,同样构成对权利人的商业秘密的侵犯。
利用无版权的商业数据获利或者获取同行业数据进行非法竞争,都会触及法律红线。
经典案例:
案例部分参考:https://github.com/HiddenStrawberry/Crawler_Illegal_Cases_In_China
看到这,有点慌。都这样了,爬虫还能开发么,一不小心就踩到红线了。纵观上面的各个案例,都有一个共同点:钱!!!虽然我们没有马老师的财富,但只要有马老师对钱的态度,基本上就避开了很多问题。
其次,现在公开的数据占了绝大部分,爬虫能合法获取的数据很多,而且有反爬技术的网站基本上是为了保证数据价值或避免商业竞争,例如天眼查、智联招聘等网站,绝大多数网站都没有反爬措施,只要控制好请求频率,基本足够满足日常需求。
那么在个人日常工作中如何能合法的开发爬虫?
我认为爬虫是一种技术爱好,以此来提高数据收集的效率、简化工作,而不是赚钱的手段。帮别人开发爬虫,别人非法使用,追根溯源和开发者脱不了关系。用爬取的数据进行牟利,在利益链上谁也不能保证可以独善其身。
当然,很多网站对爬虫还是很友好的,所以也需要我们抱着同样的态度去开发爬虫。
大部分网站的根路径下都会有robots.txt这个文件,里面记录了爬虫的访问规则,例如哪个url不能爬取、禁止哪个爬虫爬取。
腾讯视频https://v.qq.com/robots.txt:
这个就是腾讯视频规则,一个UA可以对应多个规则,*表示是所有爬虫。Disallow为空表示可以允许所有爬虫访问任何url,这足够友好了吧。
再看其他网站的规则:
Disallow: /user表示所有爬虫不允许爬取根路径下user开头的url。
Disallow:/表示UA代表的爬虫不能爬取此网站所有页面。
如果对某些网站的反爬技术感兴趣,可以从技术爱好角度研究一下,但是不要进行代码传播或者接口开放,更不要以此牟利,避免影响网站的正常运转。
写的都是日常工作中的亲身实践,处于自己的角度从0写到1,保证能够真正让大家看懂。
文章会在公众号 [入门到放弃之路] 首发,期待你的关注。