最近,国家依法查处了部分编写爬虫程序,盗取其他公司数据的不良企业。一时间风声鹤唳,关于爬虫程序是否违法的讨论遍布程序员圈子。那么到底编写爬虫程序是否违法呢?
其爬虫下载数据,一般而言都不违法,因为爬虫爬取的数据同行也是网站上用户打开页面能够看到的数据,但是如果符合下列条件的网站进行强行数据采集时,会具有法律风险。
- 采集的站点有声明禁止爬虫采集时。
2. 网站通过Robots协议拒绝采集时。
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol)。网站通过Robots协议告诉爬虫哪些页面可以抓取,哪些页面不能抓取。如果想查看一个网站的Robots协议,可以打开位于网站根目录下的robots.txt文件即可,例如:https://www.jd.com/robots.txt。
如果因为爬虫的问题产生官司,通常如果对方能够举证你的爬虫有破坏动产(如服务器)的行为,那么基本上打官司你会败诉并要求做出赔偿。
爬虫二十问
以下是业界某位大神关于爬虫相关问题的回答。
- 非爬虫方向的技术转行做爬虫是否可行?
答:可行,而且有一定的基础会很容易上手,至于深入的部分就看自己了。
2. 非技术转行做爬虫是否可行?
答:可行,但我认为较难,因为爬虫做深了以后是需要你了解各种相关领域知识的,而你现在对这些领域的东西一无所知,甚至可能连编程都还不知道怎么开始,起点会比有基础的人低很多。
3. 爬虫工作日常如何?加班多不多?
答:这个得看公司的,有些公司搞得都是些天天更新反爬的平台(比如工商信息相关的),那基本就是得一直盯着看会不会出问题,一不小心就会要加班。
4. 爬虫对于学生党的用处体现在哪些地方?
答:这个问题看个人,因为爬虫技术可用的地方太多了,没法一个一个地都拿出来说。比如你想搞个自动签到的工具,这其实本质上就是爬虫;比如你想搞个自动回复设定内容的机器人,这其实本质上也是爬虫。
5. 学到什么程度才能入职爬虫工程师?
答:我觉得首先发请求不用说了吧?抓包工具的使用也不用说了吧?熟练掌握XPath、正则表达式这种解析工具也是基本的,然后JSON之类的传输格式至少要了解过长啥样吧,再就是JS逆向总得会一点吧(从只改变量名函数名混淆级别的代码中找出加密参数生成部分的程度)。差不多会这些以后,再自己做几个项目,应聘个初级爬虫工程师没啥问题。
6. 如何成为一名优秀的爬虫工程师?
答:垂直爬虫做到后面本质上就是逆向,你需要有良好的逆向思维方式,并且对一些安全领域的骚东西也有一定的了解,这样你才能游刃有余地处理高难度的反爬。
7. 学爬虫的学习路线?
答:有一些Python基础就可以做爬虫了,主要是数据获取、数据解析、数据预处理、数据持久化这方面的东西,然后是一些三方库和框架,如Scrapy、Selenium WebDriver等。
8. 大约学习并从事爬虫几年才可以达到一个不错的高度?
答:这个问题也很看个人,我觉得主要看有没有需求逼迫成长吧。之前招人的时候,很多三年经验的也就比入门水平稍微好一点,他们在工作时遇到的难点几乎全是依靠自动化测试工具解决的,对逆向水平毫无增长。所以建议还是多依靠逆向手段去解决问题,成长速度会很快。
9. 薪资方面如何,在几年内可以达到15K?
答:同上,标15K及以上的招聘还是挺多的,看看招聘需求就知道大概到什么程度了。
10. 面试爬虫哪些技能点是加分项?
答:丰富且有深度的逆向经验、熟悉通信协议底层实现、有过哪些骚操作经历等,但主要还是逆向经验和反爬方面的经验。
11. 作为一名爬虫工程师,对该岗位的前景如何看待?
答:未来主要内容在App上的平台应该会越来越多,难度也会越来越高,所以对于爬虫工程师的逆向水平要求会越来越高,只会简单逆向甚至不会逆向的人找工作会越来越难。
12. 爬虫和数据挖掘是一样的吗?
答:不一样,爬虫只是将数据取回来,具体怎么分析才是数据挖掘的事情。
13. 爬虫是否和黑客差不多?
答:差很多,与上个问题类似,只不过“黑客”这个词太宽泛了,黑客也是有具体方向的。
14.千奇百怪的验证码只能对接打码平台吗?有啥其他办法?
答:自己破呗,逆向+机器学习。
15. 如何爬x平台?
答:涉及法律问题,这种针对某个平台的东西是不能细说的。
16. 爬虫违法吗?如何避免过线导致的违法?怎么规避法律风险?
答:算是擦边球吧,其实你即使遵守规则去爬别人的网站,只要人家想搞你,还是可以让你做的事情变成违法的。所以建议不要做太过分的事情,毕竟狗急了也会跳墙。
还有就是不要为一些明显是做灰黑产的人/公司写代码,一旦他们出事了,你也会被牵连。
知乎上之前那个很火的被抓了的人,从回答内容中来看其实就是做打码平台的那个微凉,他这一个平台据说赚了至少千万,主要应该是提供给做黑产的人使用了,这种情况下被抓是迟早的事。最好的避免违法的办法就是明显觉得不太好的事情就不要去碰,基本就不会有啥问题。
17. 如何有目的地爬取到真正想要的数据?
答:让需要数据的人提需求,如果你自己就是那个需要数据的人,那就去做市场调研,看看你需要的数据在哪里能找到。
18. 反爬虫最先进的技术是什么?最有效的技术是什么?
答:最先进的技术其实就是使用在PC平台上已经玩烂的各种反破解技术将行为监测点(设备指纹、用户操作等)隐藏起来,然后传给服务端做行为识别,如果操作非人类或者缺少某些东西就触发风控。
最有效的技术其实不是技术而是方法,这个方法就是账号收费,将你的数据变成需要花多少钱才能看到这样子的,就能做到啥高端技术都不用上、轻松提高爬虫方的获取数据成本的效果,当然这也需要结合良好的产品设计,否则普通用户的体验会很差。
19. 请问爬虫在x领域有哪些应用?
答:这个应该是对应领域的人自己思考一下自己拿到那些公开数据究竟可以做什么。
20. 需要大量账号的平台成本过高该怎么办?
答:人家就是依靠这种方式来提高你成本的,你如果觉得成本过高要么放弃要么换一条路线获取数据。