无敌python爬虫教程学习笔记(一)
无敌python爬虫教程学习笔记(二)
无敌python爬虫教程学习笔记(三)
无敌python爬虫教程学习笔记(四)
本文会对爬虫进行一个概述
爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
这里只做简介,更多的介绍可以去百科。
用什么语言写爬虫?
C,C++。高效率,快速,适合通用搜索引擎做全网爬取。缺点,开发慢,写起来又臭又长,例如:天网搜索源代码。
脚本语言:Perl, Python, Java, Ruby。简单,易学,良好的文本处理能方便网页内容的细致提取,但效率往往不高,适合对少量网站的聚焦爬取
C#?(貌似信息管理的人比较喜欢的语言)
为什么最终选择Python?
跨平台,对Linux和windows都有不错的支持。
科学计算,数值拟合:Numpy,Scipy
可视化:2d:Matplotlib(做图很漂亮), 3d: Mayavi2
复杂网络:Networkx
统计:与R语言接口:Rpy
交互式终端
网站的快速开发
爬虫不能涉及个人隐私!
如果爬虫程序采集到公民的姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为。也就是说你爬虫爬取信息没有问题,但不能涉及到个人的隐私问题,如果涉及了并且通过非法途径收益了,那肯定是违法行为。
另外,还有下列三种情况,爬虫有可能违法,严重的甚至构成犯罪:
爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。
爬虫程序干扰被访问的网站或系统正常运营,后果严重的,触犯刑法,构成“破坏计算机信息系统罪”
爬虫采集的信息属于公民个人信息的,有可能构成非法获取公民个人信息的违法行为,情节严重的,有可能构成“侵犯公民个人信息罪”。
现在网上有很多付费的课程,比如极客时间、Gitchat、慕课网、知识星球等等,这些付费内部信息如果被非法爬取手法出售获利,一种违法行为。
1、 遵守 Robots 协议
Robots 协议也叫 robots.txt(统一小写)是一种存放于网站根目录下的 ASCII 编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。
Robots 协议就是告诉爬虫,哪些信息是可以爬取,哪些信息不能被爬取,严格按照 Robots 协议 爬取网站相关信息一般不会出现太大问题。
2、不能造成对方服务器瘫痪
但不是说只要遵守 Robots 协议的爬虫就没有问题,还涉及到两个因素,第一不能大规模爬虫导致对方服务器瘫痪,这等于网络攻击。
2019年05月28日国家网信办发布的《数据安全管理办法(征求意见稿)》中,拟通过行政法规的形式,对爬虫的使用进行限制:
网络运营者采取自动化手段访问收集网站数据,不得妨碍网站正常运行;此类行为严重影响网站运行,如自动化访问收集流量超过网站日均流量三分之一,网站要求停止自动化访问收集时,应当停止。
3、不能非法获利
恶意利用爬虫技术抓取数据,攫取不正当竞争的优势,甚至是牟取不法利益的,则可能触犯法律。实践中,非法使用爬虫技术抓取数据而产生的纠纷其实数量并不少,大多是以不正当竞争为由提请诉讼。
举个例子,如果你把大众点评上的所有公开信息都抓取了下来,自己复制了一个一模一样的网站,并且还通过这个网站获取了大量的利润,这样也是有问题的。
一般情况下,爬虫都是为了企业获利的,因此需要爬虫开发者的道德自持和企业经营者的良知才是避免触碰法律底线的根本所在。
综上,为了避免进我们还是要安分守己,时常优化自己的爬虫程序避免干扰至网站的正常运行,井且在使用爬取到的数据时,发现涉及到用户隐私和商业机密等敏感内容时,一定要及时终止爬取和传播。
反爬机制
各大门户网站,使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。
反反爬策略
爬虫可以通过制定相关的策略或者使用任何技术手段,破解网站中的反爬机制,获取门户网站中相关的数据。
robots.txt
规定了网站中哪些数据可以被爬虫哪些数据不可以被爬取。