一入爬虫深似海,从此游戏是路人!分享我的Python爬虫学习经验和资料!
共 3842字,需浏览 8分钟
·
2021-02-10 15:22
今天推荐一个宝藏老男孩麦叔和他的爬虫学习经验和资料分享。麦叔毕业于浙大,前阿里技术专家,现外企VP,热爱编程和分享知识,他的口头禅是:教你学编程,陪你走职场的路。
关注公众号麦叔编程,回复路线获得更多学习路线和资源,加入超多大牛的爬虫讨论群。
下面是他分享的Python爬虫学习路线:
这是我的Python学习路线的第二篇,专门针对爬虫的学习路线,涵盖了从入门到入神的4个阶段,有目标,有路线,有作业,也给了学习资源。
作为一个工程师,总会时不时需要写一些爬虫。
这年头,非工程师都在学习写爬虫。会计,HR,运营,销售都想通过爬虫提高工作效率。
我曾经带队开发过两个大型的爬虫项目:
1. 正品折扣
爬取包括淘宝,京东在内的几十家商城的商品信息,找出正品。同样商品找出最美丽的价格,类似于曾经的一淘。
这个产品虽然没有获得商业上的成功,但在App市场上有几百万的下载量。这样的项目没有大资本,根本玩不转。2. 天眼资讯
抓取上百家垂直媒体网站,为某细分行业获取相关资讯,帮助决策者获得最新的政策法规,商机,竞争对手动向等。
现在我们来说Python爬虫学习路线。
1 Python基础
Python编程的基础是必不可少的,这里有两个要点:
你不需要等到精通了Python才去实践爬虫。 但你确实需要刻意加强系统的Python技能。
没有广阔的山脊,珠峰不可能那么高;没有深厚的编程基础,爬虫也不会爬的太深!
所以,打好Python基础:
2 能力阶梯
我把爬虫能力分成了四个等级:
第1级:能爬弱鸡网站
会爬基本没有防御的网站,会加基本的Header 会翻页,能抓取多页 会基本的文件处理,懂爬虫礼仪
第2级:能爬一般防御网站
能够爬取通过header做防御的网站 能够配合手工,爬取需要登录的网站(cookie) 会爬取前后端分离的网站
第3级:能爬专业防御网站
能爬取有专业反爬措施的网站,如淘宝,优酷等 RPA:能自动登录,操作表单,完成工作流程 能自动或半自动破解各种验证码
第4级:能设计大型爬虫系统
能端到端设计和实现大型的爬虫系统 爬取目标,爬取策略,大数据处理 系统的反反爬策略,通用爬虫,AI爬虫
3 学习路线
现在来看看如何一级一级往上爬:
第1级 没有防御的网站
1. 挑战作业
目标:爬取中关村在线的笑话,会自动翻页。请注意爬虫礼仪,不要爬的太凶。 网址:http://xiaohua.zol.com.cn/detail1/1.html
2. 知识技能
requests基本用法,简单的HTTP知识 HTML基本知识,beautifulsoup基本用法 爬虫礼仪, 基本的python文件读写
3. 学习资源
HTTP https://www.runoob.com/http/http-tutorial.html HTML https://www.w3school.com.cn/ beautifulsoup https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ requests https://requests.readthedocs.io/zh_CN/latest/ 其他资源请在公众号:麦叔编程,回复爬虫。
第2级 能爬一般学习网站
1. 挑战作业
目标:完整爬取异步社区书单 网址:http://xiaohua.zol.com.cn/detail1/1.html
2. 知识技能
HTTP知识,尤其是HTTP Headers HTML,JSON,JavaScript一般性了解 Chrome开发者工具,Postman
3. 学习资源
加深HTTP https://www.runoob.com/http/http-tutorial.html JavaScript,JSON: https://www.w3school.com.cn/ Chrome开发者工具 https://www.html.cn/doc/chrome-devtools/ Postman https://www.postman.com/downloads/ 其他资源请在公众号:麦叔编程,回复爬虫。
第3级 自动操作, JS解密,破解各种验证码
1. 挑战作业
根据自定义规则在淘宝挑选优质商品,能自动登录账号,抓订单信息 网址:https://www.taobao.com
2. 知识技能
HTTP POST请求,加深HTML,JS加解密,正则 tesserocr, 第三方验证码API selenium, pyautogui, appinium(爬App)
3. 学习资源
html, DOM, XPath https://www.w3school.com.cn/ tesseract https://github.com/sirfz/tesserocr 常见验证码 https://www.geetest.com/ selenium https://selenium-python-zh.readthedocs.io/en/latest/ pyautogui https://pyautogui.readthedocs.io/en/latest/
第4级 设计大型爬虫系统
1. 挑战作业
设计一个系统可以爬取淘宝,京东,拼多多等多个商城 对比同一商品在不同商城的价格
2. 知识技能
scrapy, scrapy-redis, scrapyd 数据处理:MySQL, Redis, Elastic Search 代理池,通用爬虫(RE或AI)
3. 学习资源
scrapy https://www.osgeo.cn/scrapy/ scrapyd https://piaosanlang.gitbooks.io/spiders/content/07day/README7.html MySQL https://www.docs4dev.com/docs/zh/mysql/5.7/reference Redis http://www.redis.cn/ 代理池 https://github.com/jhao104/proxy_pool
4 知识体系
当你有了一定的基础,最好的学习方式就是参考开源的项目,去实战,去实战,去实战!
把上面所有东西都罗列出来可以分成三部分:
蓝色的是核心必备基础,HTTP是爬虫使用的交流语言,HTML, JSON是数据的格式,而DOM, CSS等是解析数据的通用技术。 黄色的是通用工具或技术,不管你用Python,还是Java,或者其他编程语言,这些你都用的到。但严格来说,他们不是必备的,都有替代方案。 而单纯Python的东西只有上面的绿色部分,相对来说还比较简单。相对来说,学习爬虫是有点困难的,因为它涉及到了太多的蓝色必备基础,还需要用到黄色的通用工具。
5 实战项目
当你有了一定的基础,最好的学习方式就是参考开源的项目,去实战,去实战,去实战!
我给你收集了很多实战项目。基本上,你想爬谁都可以找到参考的例子:
搜集各种爬虫 https://github.com/facert/awesome-spider 模拟登录各大网站 https://github.com/CharlesPikachu/DecryptLogin 音乐下载 https://github.com/CharlesPikachu/musicdl 视频下载 https://github.com/CharlesPikachu/Video-Downloader Baidu. 谷歌、百度、必应图片下载 https://github.com/sczhengyabin/Image-Downloader 各大视频网站 https://github.com/iawia002/annie 12306 购票小助手 https://github.com/testerSunshine/12306 滑动验证码破解 https://github.com/darbra/geetest 有趣的Python爬虫和Python数据分析小项目 https://github.com/Alfred1984/interesting-python Bilibili 用户爬虫 https://github.com/airingursb/bilibili-user 新浪微博爬虫 https://github.com/LiuXingMing/SinaSpider 中国知网爬虫 https://github.com/yanzhou/CnkiSpider 链家爬虫 https://github.com/lanbing510/LianJiaSpider 京东爬虫 https://github.com/taizilongxu/scrapy_jingdong 反反爬虫 https://github.com/luyishisi/Anti-Anti-Spider
6 其他学习路线
这是麦叔的Python学习路线系列的第二篇,其他学习路线请关注公众号麦叔编程,回复:路线。还可以加入超多大牛的爬虫讨论群。
7 点赞是美德
你动动手指,就是对我最大的鼓励,点赞,点再看,转发,三连走起!
我是麦叔,教你学编程,陪你走职场的路!