网络爬虫有哪些行为是侵权的?

2020-05-20 22:55发布



6条回答
中华小当家
2楼 · 2020-05-21 08:40

没有节制的爬取一般是不符合要求的,爬虫建议如下:

  • 谨慎抓取,请在开始抓取之前检查“ Robots.txt”

  • 保守一点,激进地请求数据可能会给Internet服务器造成负担。请保持温柔。没有人想要使服务器崩溃。

  • 明智地使用数据,您可以从收集的数据中获得见解,并帮助您的业务发展。

  • 如果需要,在开始抓取之前,请与网站所有者联系。

  • 请勿将抓取的数据随意传递给任何人。如果它是有价值的数据,请确保其安全。


ann
3楼 · 2020-12-04 09:11

浅谈网络爬虫

什么是网络爬虫?爬虫能干什么搜索引擎抢票、刷票等自动化软件部分破解软件金融等行业数据挖掘、分析数据来源其他

爬虫很简单语言的选择两种语言的小demo

爬虫也不简单ip、浏览器头(User-Agent)、和cookie限制需登录的验证码限制、参数限制JavaScript渲染/ajax加密

爬虫知识储备路线1.基础语法:2.正则和爬虫相关库,以及浏览器F12抓包和Fidder等抓包工具抓包3.扎实的语法4.多线程、数据库、线程安全相关知识。5.分布式的概念和知识。6.js进阶、逆向等知识.

总结

什么是网络爬虫?

爬虫,又称为网页蜘蛛(spider),就是能够在互联网中检索自己需要的信息的程序或脚本。

爬虫,简单的说就是一个http(https)请求,获取到对面网页的源码,然后从网页的源码中抓取自己需要的信息。而html代码的规则是基于xml的,所以可以通过一定解析规则和逻辑完成我们的数据。

爬虫能干什么

爬虫能干的事情比较多,并且有些领域和爬虫都有很大的关联。不同深度,技术的爬虫工作者能干的事情也不同。

搜索引擎


你熟知的谷歌、百度、360等搜索都是网络爬虫算法db存储形成的一套持久运行、相对稳定的系统。当然,这类爬虫并不是大部分人都能接触的,通常这类对硬件成本和算法的要求较高,要满足一定的爬行速率、爬行策略并且你还要通过一定算法检索文本、挖掘文本,通过文本价值和外链数量等等判权信息给搜索排名加权。具体不做过多介绍。笔者也不会。但是如果有兴趣完全可以运用开源软件或者工具做个站内搜索,或者局域搜索。这个如果有兴趣可以实现,虽然可能效果不好。

抢票、刷票等自动化软件


你可能见过一些抢票软件比如12306抢票。而购票的一个过程其实也就是一个http的请求(post)购票。在你手点时间卡的肯定没有程序快。所以程序的优势在这里就出来了。同理,遇到一些拉票,投票的几万票的,你可以根据写个爬虫小程序去完成。

部分破解软件

你会见到一些诸如pandownload、全网vip视频免费看、付费知识/文档下载、qq机器人等等。有经验的爬虫工程师不仅仅能够解析http请求,而tcp-ip等请求涉及到的各种加密也能处理的非常得手。然而这些人就能开发出一些让人感到黑科技的东西。

金融等行业数据挖掘、分析数据来源

随着大数据热门,相关的系列领域和相关领域如数据挖掘、分析以及人工只能的。因为数据的生产者是有限的,比如新浪微博、淘宝、京东、金融等其他等就可以自己生产数据。而其他人如果想要这些数据集,那么要么通过官方可能给的部分可怜的api、数据。要么就是买(很贵),要么就是自己爬。通过爬虫的数据可以做舆情分析,数据分析等等。数据本身是没有价值的,然而通过挖掘处理之后就极具商业、研究价值。

其他

数据是一个公司的核心。市面上有很多类似产品或者功能,有很多中小部分的数据核心来自于他人,所以爬虫对于他们公司至关重要。而诸如校园辅助app,博客一键搬迁,新闻等咨询,等等非官方授权的应用却有着官网app的功能都是基于网络爬虫实现。还有很多就不具体介绍。

爬虫很简单

就拿一个csdn的个人主页来说https://blog.csdn.net/qq_40693171

语言的选择

对于初学者肯定会对选择java和python有些java爱好者可能会有点难受。对于java和python的爬虫。不能全全论之。因为各个语言有各个语言的特色。就爬虫而言,个人感觉用python更方便,得益于python精简的语法和弱类型变量。能够伸缩自如。这样还有一点就是python的字典操作起来远比java的Map方便。而java的强变量让书写变得稍加繁琐。但是如果遇到多线程,高并发问题其实还是java占优。python只能用多进程来优化速度而假的多线程对性能提升有限。

对于python爬虫常用的库有

名称主要功能依赖requests负责网页请求,代理等处理,封装urllib2(用起来麻烦)等库,使得操作简化。不需要考虑编码、解码等较麻烦的问题pipinstallrequestsBeautifulsoup非常好用的dom解析器,还有css选择器。匹配正则等,而选用lxml当做解析pipinstallbs4,pipinstalllxmlxpath解析效率最高,和BeautifulSoup可以选择一个学习即可pipinstalllxmlre正则库,很多特殊匹配需要正则来完成内置Senlenuim/ChromeDriverPhantomJS模拟浏览器行为,执行点击事件,简单粗暴,但是速度慢需要安装对应库和对应驱动

至于框架,scrapy流行。就不介绍对于java爬虫常用的库有

名称主要功能HttpURLConnectionjava.net下包。很多其他包都基于此包进行封装HttpClient基于HttpURLConnection进行封装,更加友好的解决参数,Cookie,Session等问题。jsoup基于HttpClient进行封装,更加方便的发送请求。此外jsoup的另一个重大功能就是他是一个非常良好的dom解析器。使用起来非常简单。SenlenuimPhantomJS解决动态渲染解析不了的问题,同上

至于框架,java的框架比较多,但是流行度却没python的scrapy高。自己可以查询各种框架进行对比。当然自己也可以使用springmybatis进行封装。如果项目比较大。

爬虫也不简单

但是很多公司,网站的网址他们的数据是不太想随便让人爬的。有的网站给了robot.txt文件。规定那些爬虫可以爬。但是这些又是很矛盾的。因为如果你想要搜索引擎收录你,你肯定要允许百度,谷歌,360等爬虫程序访问你的网站,才能收录,搜索排名才能靠前。否则你的网站就成单机站点了。网站会处理或者拒绝非正常访问的请求。比如检索你的请求非人为。请求过快等等。

爬虫与反爬虫的斗争由此开始。

ip、浏览器头(User-Agent)、和cookie限制

一个http请求要携带很多头信息带给后台,后台也能够获取这些信息。那百度的首页打开F12刷新

但是网站大部分会根据你所在的公网ip进行封禁访问。如果你访问过快,就会招来403forbidden。所以你需要使用代理ip来让对面认为你的ip没问题。还有部分网站会针对User-Agent等其他信息进行判断。所以你需要多准备几个User-Agent,比如谷歌的,IE的,360的随机使用即可。而有些网站会根据cookie进行封禁。因为有的cookie储存了用户的一些信息。如果网站根据cookie来进行限制,那么你不仅要找的到这样cookie池维护,还要记得维持cookie的活性。而新浪微博的反扒策略就是基于cookie鉴定。所以你需要到淘宝购买已登录过的cookie池才能拿到更多的数据。

需登录的验证码限制、参数限制

有很多数据是开放可以查看的,但是也有很多数据需要注册登录之后才能查看数据的,比如国内的各大招聘网站都需要你先登录然后才能爬取。

对于普通验证码来说,你大致有四个选择。

绕过验证码,直接手动登录用网站,复制cookie放到请求的去抓取数据。这种最不智能也是最简单的方法。(pandownload就是内置一个浏览器driver然后你手动登录后它获取你的cookie信息然后一波操作)将验证码下载到本地(应用),让用户识别填写然后登录。通过人工智能和数字图像相关技术,提前训练好验证码识别模型,在遇到验证码时候执行程序识别。对于简单的验证码识别。也有不少开源作品。通过打码平台,让第三方专业打码。

而对于滑块以及其他奇葩如滑块,点选等等,那你要么借助第三方,要么就是自己研究其中js运转流程。以及交付方式。算法原理,还是很复杂的。笔者这部分也不是特别了解。只是略知一二。

不仅如此,在登录环节,往往还会遇到一些其他参数的会放到JavaScript里面,这需要你抓到比较。有的还会针对你的数据进行加密传到后台。这就需要你娴熟的js解密能力了。

JavaScript渲染/ajax加密

有不少页面的数据是通过ajax或者JavaScript渲染进去的。而在数据上,爬虫无法识别、执行JavaScript代码,只能借助webdriverphantomjs等模拟执行js获取数据。或者就是自己研究js流程。弄懂里面参数变化过程。但是实际是相当有难度的。毕竟人家一个团队写的逻辑,要你一个人(还不是搞前端的搞懂)真的是太困难的。所以,爬虫工程师的水平区别在解决这些复杂问题就体现出来了。而异步传输如果借口暴露,或者能找到规则还好。如果做了加密限制,又是比较棘手的问题。

爬虫知识储备路线

虽然一些高难度的爬虫确实很难,没有一定的工作经验和时间研究确实很难变强。但是我们还是能够通过掌握一些大众知识能够满足生活、学习的日常需求和创意。

  1. 基础语法:

  2. 无论你使用java和python,爬虫也是程序,你首先要掌握这门编程语言的语法。而基础语法入门也不需要太久,但是还是需要一点时间,不能急于求成。

  3. 2.正则和爬虫相关库,以及浏览器F12抓包和Fidder等抓包工具抓包

  4. 当掌握基础语法后,爬虫一些简单好用的基本库需要花时间学习。正如上面表格所列的库。需要熟练掌握。在其中一定要学会使用抓包。简单分析请求的参数和地址等信息。而fiddler是一款强大的抓包工具。通过配置你也可以尝试抓安卓的包,爬去app的数据。至于简单抓包浏览器就可以完成。推荐谷歌浏览器。

  5. 3.扎实的语法

  6. 因为一个爬虫项目它的数据是有层次的,所以你需要良好的逻辑和编程习惯,抓取这些数据能够清晰的存储而不混乱。并且url遍历也需要深度优先遍历或者广度有限遍历等策略。需要熟悉这些基本算法,熟悉语言中集合模块的使用。

  7. 4.多线程、数据库、线程安全相关知识。

  8. 单线程的爬虫是没灵魂的爬虫,一定要试试多线程,多进程爬虫的快感,然而这个过程可能会遇到封ip等问题,需要你自己搭建一个ip池。

  9. 5.分布式的概念和知识。

  10. 一直单机的爬虫是没灵魂的爬虫。要试试多台程序多线程跑一个爬虫任务。当然,这里就会遇到分布式锁的问题。需要你对该方面稍微了解。运用。

  11. 6.js进阶、逆向等知识.

  12. 随着前后端分离,js流行等等,网页其实对于爬虫变得复杂,难度和学习成本也在提升。试着找一些登录网站模拟登录,调用一些开源算法等等。这部分其实才是真正大佬能力体现。当能够识别这种加密,然而其他app协议也就能慢慢解开,可能还会遇到app逆向脱壳编译等等。完成一些牛逼的事情。





刘小碗
4楼 · 2021-07-05 11:34

(一)

网络爬虫的不当访问、收集、获取、干扰行为理应受到法律规制。

如果在数据抓取过程中实施了非法控制行为,可能构成非法控制计算机信息系统罪。

若行为人违反刑法的相关规定,通过网络爬虫访问收集一般网站所存储、处理或传输的数据,可能构成刑法中的非法获取计算机信息系统数据罪。

如果使用网络爬虫频繁访问目标数据服务器,造成对目标网站的功能干扰,导致其访问流量增大、系统响应变缓,影响正常运营的,也可能构成破坏计算机信息系统罪。

违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,可能构成侵犯公民个人信息罪,具体定罪和量刑可参考《最高人民法院、最高人民检察院关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》。

对于爬虫可能触及的刑事罪名参见本文第3部分——与“爬虫”相关的规范性文件。


(二)

未经授权,爬取信息的行为可能侵害权利人的合法权益,包括个人权益及企业权益,由此承担相应的侵权责任,包括但不限于停止侵害、消除影响、恢复名誉、赔偿损失。

对个人而言,爬虫抓取的信息中包含姓名、肖像、隐私等内容,未经权利人同意擅自获取该部分信息,除上述刑事责任中的侵犯公民个人信息罪,也构成了对公民人格权的民事权利侵犯。

对企业而言,数据信息是一个企业的核心竞争资源,未经同意被爬取并进行商业利用的行为,严重侵害了数据拥有者的合法权益,违反自愿、平等、公平、诚信的原则以及法律和商业道德,是一种不正当竞争的行为,该行为给他人造成损害的,应当依法承担民事责任。

具体的民事责任可参考本文第3部分——与“爬虫”相关的规范性文件。

(三)

未经授权爬取信息的行为,除上述刑事与民事责任,也可能构成行政责任。

根据《网络安全法》第二十七条规定、第六十三条规定,从事危害网络安全的活动,或者提供专门用于从事危害网络安全活动的程序、工具,或者为他人从事危害网络安全的活动提供技术支持、广告推广、支付结算等帮助,尚不构成犯罪的,由公安机关没收违法所得,处五日以下拘留,可以并处五万元以上五十万元以下罚款;

情节较重的,处五日以上十五日以下拘留,可以并处十万元以上一百万元以下罚款。

单位有前款行为的,由公安机关没收违法所得,处十万元以上一百万元以下罚款,并对直接负责的主管人员和其他直接责任人员依照前款规定处罚。

违反本法第二十七条规定,受到治安管理处罚的人员,5年内不得从事网络安全管理和网络运营关键岗位的工作;

受到刑事处罚的人员,终身不得从事网络安全管理和网络运营关键岗位的工作。

根据《网络安全法》第四十一条规定、第六十四条规定,侵害个人信息依法得到保护的权利的,由有关主管部门责令改正,可以根据情节单处或者并处警告、没收违法所得、处违法所得一倍以上十倍以下罚款,没有违法所得的,处一百万元以下罚款,对直接负责的主管人员和其他直接责任人员处一万元以上十万元以下罚款;

情节严重的,并可以责令暂停相关业务、停业整顿、关闭网站、吊销相关业务许可证或者吊销营业执照。

违反本法第四十四条规定,窃取或者以其他非法方式获取、非法出售或者非法向他人提供个人信息,尚不构成犯罪的,由公安机关没收违法所得,并处违法所得一倍以上十倍以下罚款,没有违法所得的,处一百万元以下罚款。


爱梦 - 拿来吧你
5楼 · 2021-07-09 09:22

爬虫不能涉及个人隐私!

如果爬虫程序采集到公民的姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为。

也就是说你爬虫爬取信息没有问题,但不能涉及到个人的隐私问题,如果涉及了并且通过非法途径收益了,那肯定是违法行为。

另外,还有下列三种情况,爬虫有可能违法,严重的甚至构成犯罪:

1.爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。

2.爬虫程序干扰被访问的网站或系统正常运营,后果严重的,触犯刑法,构成“破坏计算机信息系统罪”

3.爬虫采集的信息属于公民个人信息的,有可能构成非法获取公民个人信息的违法行为,情节严重的,有可能构成“侵犯公民个人信息罪”。

现在网上有很多付费的课程,比如极客时间、Gitchat、慕课网、知识星球等等,这些付费内部信息如果被非法爬取手法出售获利,一种违法行为。


超甜的布丁
6楼 · 2021-07-13 11:07

不遵守robots协议的法律风险

强行突破网站设置的技术措施的法律风险

爬虫抓取特定类型的信息的法律风险

爬虫抓取的信息属于用户的个人隐私

爬虫抓取的信息属于反不正当竞争保护的数据

爬虫抓取的信息属于用户的个人信息


天天
7楼 · 2021-08-03 11:31

所谓网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序与技术。如果通过爬虫抓取网络公开信息,并不违法;但如果抓取的是未公开、未授权的个人敏感信息,就属于违法行为,违反的是2017年6月1日实施的《网络安全法》以及“两高”相关司法解释。

相关问题推荐

  • 什么是Python列表2020-12-03 10:47
    回答 20

    在python中列表(list)是使用最频繁的数据类型,在其他语言中通常叫做数组。列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。...

  • 回答 16

    简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。...

  • 回答 17

    因为Python可以做数据分析  数据挖掘,数据挖掘的话简单来说就是爬虫工程师

  • 回答 13

    1)学习爬虫,可以私人订制一个搜索引擎,并且可以对搜索引擎的数据采集工作原理进行更深层次地理解。有的朋友希望能够深层次地了解搜索引擎的爬虫工作原理,或者希望自己能够开发出一款私人搜索引擎,那么此时,学习爬虫是非常有必要的。简单来说,我们学会了...

  • 回答 4

    大部分数据都是可以爬的,不过有些网站对数据的加密做的非常好,在解析的过程中要消耗很长的时间。

  • 爬虫是什么?2020-08-26 10:11
    回答 10

    抓取数据,进行统计和分析

  • 成都爬虫好找工作吗2020-10-14 10:23
    回答 12

    在成都找网络爬虫工作也是可以的,自己可以先到招聘软件上看看当地招聘的需求量以及薪资待遇水平怎么样,要是能达到自己的预期效果可以在当地工作,要不可以到北上广深找工作,就业机会能更多些。...

  • 回答 9

    两种方式,一种是MySQL自带的命令行窗口,一种是图形用户管理工具,前者类似于一个cmd窗口,日常管理维护数据库不是很方便,后者就是一个图形用户管理软件,种类繁多,使用起来也相对容易一些...

  • 回答 4

    不可以所有编程最起码都得学函数,分支,循环之后才可以编写代码

  • 回答 2

    一台主机  多台从机

  • 回答 3

    一、分布式爬虫架构在了解分布式爬虫架构之前,首先回顾一下Scrapy的架构,如下图所示。Scrapy单机爬虫中有一个本地爬取队列Queue,这个队列是利用deque模块实现的。如果新的Request生成就会放到队列里面,随后Request被Scheduler调度。之后,Request交给Down...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http':  'http://61.155.164.110:3128'}http://www.goub......

  • 回答 2

    import  requestsimport  jsonfrom bs4 import BeautifulSoupfrom    urllib.request import urlretrieve#构造函数def sk():    #请求头    header={        'user-Agent':'Mozilla/5.0 (Windows NT 10.0; W...

  • 回答 3

    针对字符串中本身含有双引号,我们可以利用单引号进行字符串的定义来解决这个问题。使用单引号作为字符串的界限就不会引起识别异常问题,保证字符串的合理定义

  • 回答 2

    要用unicode编码来替换。

没有解决我的问题,去提问