反过来想想,其实也不奇怪:爬虫就等于数据,做什么不需要数据呢?
- 以数据为生命线的平台,比如抖查查,天眼查,需要爬虫来收集数据。
- 数据分析师需要爬虫采集数据:房价信息,商品信息等等
- 办公室的人用爬虫自动提交数据,实现办公自动化
- 喜欢小姐姐的人抓取图片,想看小说的人抓取小说,下载视频等等
但我发现这个基于能力和知识点的学习路线虽然看起来不错,在没有实际项目做支撑,是很难进行的。
在和很多人的沟通中,我也发现了学习爬虫几个误区。
学爬虫的几个误区
1.不理解:比着葫芦画瓢开发出一个简单的爬虫,但不理解其中的原理,稍微变换一下又不会了。
2.缺乏明确的目标:如果你的目标是学会爬虫,这个不够明确。要进一步细化和明确目标,比如:学会爬你最需要的3个网站。
3.贪多,贪全:基础都没打好,就想要一口吃个胖子。很多人觉得某一件事情不难,但自己却从来没有做过,或者从来没学会过。
4.缺少实战经验:爬虫涉及的知识体系非常丰富,超出了任何一门语言的范围。如果以知识点驱动来学习爬虫会非常困难也抓不住重点。
我一直是崇尚以实战为接入点却学习技术,比如我在B站的硬核Python也是以实战为基础的,很多人都熟悉小麦机器人等项目。
几周前,我忽然想到,爬虫的学习路线也可以这样去搞:
- 找10个有难度阶梯的网站,熟练的掌握这10个网站的爬取方法。
- 在这10个项目的实战中,掌握爬虫必备的技能,建立爬取市面上80%网站的能力。
这个学习路线比以能力和知识为主线的阶梯要容易执行的多:
1.目标非常明确,学会爬10个难度不同的网站。
2.目标明确了,就可以深度学习。确保完全理解10个网站的抓取过程,而不是比着葫芦画瓢。
3.不贪多,不贪全,就10个网站(另外还包括几个练习网站)。但不贪多,在扎实的掌握这些之前,不去想App抓取,不去特别难的网站。
4.实战,上来就是实战,最后还是实战。但实战过后学会了知识,学以致用。
说干就干,下面是我们筛选出的10个项目。
10个项目学会爬虫
具体的网站仅供参考,可能会换成难度相同的同类网站。
注:8和9是同一个网站,使用了不同的方法。
下面是10个网站列表和相关知识点:
1.网站仅供参考,可以换成难度相同的其他网站。
2.以学习为目的,抓取过程一定要适量,不要给网站运营带来压力。
30天的安排
有了目标还要有计划。我看过很多人说想学Python,一年前就来找我聊,一年后还是那种状态。没有时间计划的目标,大多是实现不了的目标。
我给这10个项目设定了30天的学习计划。
这个30天的爬虫计划,第一天就要先了解爬虫守则,大家都听过多个爬虫进公安局的故事。所以这件事特别重要。
其实爬虫是无罪的,了解了守则后大可不必谈爬虫色变,否则百度,谷歌,天眼查这些大公司和平台就都进去了。你要理解:什么是不可逾越的红线?什么可以爬?可以爬多少?如何文明优雅的爬?
然后就是分天去攻克这10个爬虫项目,它们涉及到不同的知识点,从最简单的小虫卵,到分布式的大型爬虫。