python爬虫工程师养成记

python爬虫工程师养成记

微信公众号:在敲代码啦 

闲谈

      很久之前就想写这个话题,但是一直都不敢写。最近脑袋一抽,感觉是时候着手了。爬虫的全称叫网络爬虫,也有人称之为网络机器人。它是一种按照一定规定,自动地抓取信息的程序,属于大数据技术的数据采集部分。自动化采集的能力提高了工作效率,于是该技术受到了电商、投资、房产、物流等行业的欢迎。下面我们介绍如何成为一个合格的python爬虫工程师。

 

正文      

       根据自身的经验我把爬虫分为三个阶段。

第一阶段初学者阶段

所需掌握的知识:

    python语法、html+css基础,Ajax异步加载、抓包工具使用、解析数据工具(正则表达式、css、xpath)、数据库基本操作(关系型数据库、非关系型数据库)。

1、掌握python语法用于编写爬虫程序。

2、数据通常是以html或api的形式呈现所以需要掌握其基本原理。

3、抓包工具的使用能更高效的找到目标字段,有的抓包工具能直接呈现一些特殊的数据格式,如flash。

4、解析工具用于提取相关字段,清洗数据。

5、熟练数据库操作便于数据存库。

 

掌握以上知识点,一般的网站的数据采集都能够轻易的实现啦。

适合学习群体:

少量数据采集的工作者。需要有数据支持的写论文的研究生。爬虫爱好者。

python语法学习链接:

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

三种抓包工具安装使用和区别对比:

http://www.365jz.com/article/24504

正则表达式语法:

http://www.runoob.com/regexp/regexp-syntax.html

css和xpath详解:

https://blog.csdn.net/lanhaixuanvv/article/details/78565877

python操作各数据库:

https://www.cnblogs.com/yz-test/p/9338409.html

 

第二阶段进阶阶段:

所需掌握知识:

    http/https协议传输理论、多线程,多进程、手机app采集、其他协议(如websocket)。

1、掌握http/https协议传输理论,就能明白前端和后台的数据交互规律。理解cookie等机制的作用。

2、掌握多线程和多进程可以提高爬虫效率。

3、弄清计算机网络传输理论,同一网段下配置好手机代理就能够做到手机app采集,当然手机app采集的思路和网页端的一样。

4、除了http(s)协议以外有些网站或app会用到websocket进行数据交换,如一些菠菜网站。

 

掌握以上知识点,就可以新手上路找个工作了。有人可能会问为什么没有提到scrapy这样的爬虫框架,我的建议是先掌握相关库的运用。用最原始的代码写爬虫。爬虫是一种思维方式,当你熟悉这种思维方式后任何一种框架一学就会,甚至可以用任何一门语言去写爬虫,包括c语言。

http协议详解:

https://www.cnblogs.com/lzq198754/p/5780310.html

python多线程和多进程:

https://www.cnblogs.com/whatisfantasy/p/6440585.html

fiddler手机抓包:

https://my.oschina.net/jhao104/blog/605963

websocket爬虫案例:

https://segmentfault.com/a/1190000013149749

 

第三阶段高手阶段:

所需掌握知识:

    反爬破解,验证码破解、高并发,设计集群爬虫系统...

1、反爬包括字体反爬、js加密反爬,apk内部加密反爬,验证码反爬。这块的技术决定你能否拿到数据。js加密可以通过分析js代码进行破解,apk内部加密可以采用脱壳或hook解决。字体反爬和验证码图像识别解决。

2、设计集群爬虫系统,需要有程序调度管理,系统资源管理的相关经验。

 

目前我能看到的高度就止到此处了,第三阶段的突破是比较艰难的也比较尴尬的。js的破解需要对js语法有个基本了解,得会浏览器的js调试,需要熟悉几种常见的加密算法。apk的脱壳会让你进入一个新的纪元,也就是Android逆向。图像识别也会打开新的世界,也就是机器学习。至于集群的设计,目前我并没有遇见过海量的数据采集项目所以不敢瞎断言。

 

总结

    文章没有提到selenium,作为一个优秀的爬虫码农要学会拒绝selenium。能够用协议采集的坚决不用selenium ,没法用协议采集的想办法用协议。selenium固然好用但不是最纯正的爬虫。写到这里希望这篇文章能够让大家了解爬虫的进阶之路。当然如果有大佬和我的观点不一的欢迎私下交流。

你对爬虫的进阶之路是怎么看待的啦?如果你还有什么好的想法啦。欢迎你的留言。

 

微信公众号:在敲代码啦 

 

 

 

 

 


版权声明:本文为shanlusai9801原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。