首页 文章详情

一入爬虫深似海,从此游戏是路人!分享我的Python爬虫学习经验和资料!

Python绿色通道 | 690 2021-02-10 15:22 0 0 0
UniSMS (合一短信)

今天推荐一个宝藏老男孩麦叔和他的爬虫学习经验和资料分享。麦叔毕业于浙大,前阿里技术专家,现外企VP,热爱编程和分享知识,他的口头禅是:教你学编程,陪你走职场的路

关注公众号麦叔编程,回复路线获得更多学习路线和资源,加入超多大牛的爬虫讨论群

下面是他分享的Python爬虫学习路线:

这是我的Python学习路线的第二篇,专门针对爬虫的学习路线,涵盖了从入门到入神的4个阶段,有目标,有路线,有作业,也给了学习资源。

作为一个工程师,总会时不时需要写一些爬虫。

这年头,非工程师都在学习写爬虫。会计,HR,运营,销售都想通过爬虫提高工作效率。

我曾经带队开发过两个大型的爬虫项目:

1. 正品折扣

爬取包括淘宝,京东在内的几十家商城的商品信息,找出正品。同样商品找出最美丽的价格,类似于曾经的一淘。

这个产品虽然没有获得商业上的成功,但在App市场上有几百万的下载量。这样的项目没有大资本,根本玩不转。2. 天眼资讯

抓取上百家垂直媒体网站,为某细分行业获取相关资讯,帮助决策者获得最新的政策法规,商机,竞争对手动向等。

现在我们来说Python爬虫学习路线。

1 Python基础

Python编程的基础是必不可少的,这里有两个要点:

  1. 你不需要等到精通了Python才去实践爬虫。
  2. 但你确实需要刻意加强系统的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 知识体系

当你有了一定的基础,最好的学习方式就是参考开源的项目,去实战,去实战,去实战!

把上面所有东西都罗列出来可以分成三部分:

  1. 蓝色的是核心必备基础,HTTP是爬虫使用的交流语言,HTML, JSON是数据的格式,而DOM, CSS等是解析数据的通用技术。
  2. 黄色的是通用工具或技术,不管你用Python,还是Java,或者其他编程语言,这些你都用的到。但严格来说,他们不是必备的,都有替代方案。
  3. 而单纯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 点赞是美德

你动动手指,就是对我最大的鼓励,点赞,点再看,转发,三连走起!

我是麦叔,教你学编程,陪你走职场的路!

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter