python爬虫之技术路线

爬虫说简单的话挺简单,原理在那儿,就是运用http协议从网站服务器上获取数据;说难也难,最后想练成大规模、分布式、多线程稳定高效的爬虫系统需要下番功夫,下面我来介绍下爬虫的技术学习路线吧

从一个识字的小白开始
1、首先,得了解下http、HTML的协议吧?这个不是很难,了解一下就行,百度百科的水平我觉得就可以了。

2、得有点python的基础吧?懂得基本的Python语法,会使用pip安装第三方库,这就够了。

3、通过urllib、requests库先来上手下静态网页的抓取。这个算是最基本的,一般都是拿www.baidu.com练手~,百度充当了一次hello world的角色,给度娘加鸡腿。

4、从获取的数据中解析出你需要的信息。http返回的数据类型有很多种啊,有的是html的,有的是json的,有的是xml的等等。这个时候你需要学习beautifulsoup库、xpath、css选择器来提取数据,也可以使用最简单粗暴的正则表达式去提取,那样效率低点昂,入门练手可以用!

5、反反爬技能之用user-agent冒充浏览器访问。服务器对于来访的http请求都会进行报文拆分,发现你的请求头部如果是个爬虫的话,会直接拒掉,所以把这个字段改成一些浏览器就可以了

以上,就算是爬虫入门了,能获取数据、提取有效信息了,用豆瓣、猫眼练练手吧(这哥俩也是悲催的,爬虫入门的朋友都流行拿这哥俩练手)。下面是爬虫进阶阶段的技术介绍。


6、通过分析源码获取一些动态网页的url,进行抓取。现在大多数网页都不是静态的,它们使用了ajax、JavaScript等技术做成一个动态的网页,本质上是什么呢?就是把本来该一次展现在页面的东西通过一些链接连到后台服务器,进行动态、按需的信息展现,这个时候我们可以通过用浏览器监听的方式,获取后台的一些动态的url请求,利用这些url再去请求数据。

7、使用selenium模拟浏览器去进行数据爬取。现在的网站也学精了,各种反爬手段用起来,针对上面那种可以根据ajax接口去爬数据的行为,网站开发出了ajax接口加密技术,加密的接口不是不能解密,但是很麻烦,需要你从源码网页中一层一层的挖,还不够费事的。但是使用selenium就好多了,它完全是模拟浏览器去进行请求访问,你不是ajax加密码?我不需要解密你的接口,我这边等你所有的js加载完一窝端过来,你再怎么反爬至少不会把浏览器的正常操作给禁掉吧?

8、反反爬技能之cookie模拟登录、ip代理、验证码识别。目前大多数网站设置的反爬手段也就是验证码识别、登录验证、以及异常ip的封禁了,这个时候可以通过冒充cookies、伪装ip、把验证码进行自动化识别等技术来破解反爬

9、多线程、高并发爬取。如果需要爬取的数据量很大的话,可以使用这个功能进行多个线程同时爬取,多线程本质上是充分利用了电脑给这个进程分配的cpu、内存等资源,实现更高效率

以上就是爬虫的进阶阶段了,到了这个级别,基本上可以实现业余爬取大部分网站了。当然如果是企业级生产需求的话,这样的爬虫还没法满足需要,主要还是性能、稳定性等方面的效果有待优化。


10、scrapy爬虫框架的学习。框架是什么,就是别人做好的半成品,你直接拿过来用就好了。编程圈里面有格言:不要重复造轮子。就是别人做好的东西你就不要做了,可以去学原理,也可以去学使用,但是如果你再重复的去一点儿一点儿的码砖的话,很难走的快走的远,要学会站在巨人的肩膀上,这样才能站得高望的远……扯远了。这个框架就是大神把一个爬虫的完整结构给缕出来了,每一个功能对应的模块给写好了,你需要做的是根据需求往里面填参数或者简单写点数据处理的代码就好了,这个框架也有一些分布式、高并发的功能……当然,我现在还没上手,正在上手中,以后学成会来总结、分享

你可能感兴趣的:(技术总结)