划田下之大稽
划田下之大稽
4月前 · 6 人阅读

文|寻找不同的蜜蜂

学习python 115h,约4.8天,5堂爬虫课,3个实战项目(豆瓣图书,51job和爱奇艺),编程小白的我,也可以悠然自得,爬取网页信息了。这点成绩,在编程大神眼中,不值得一提。但在自己眼中,确实是一个飞跃,一个突破。

1/ 编程,心中的痛

2008年的7月,那是我过的最不开心一个暑假。90多分的高数带着50多分的C语言回家。这是我大学期间第一个挂科。都说没有挂科的大学是不完整的,但是等你挂了以后,才发现更不完整。

仔细回想那一学期的学习状态,这样的结果也算是合情合理。

首先,在学习C语言时,仅靠上课和少量的课后习题,压根不够。相比在高数上花的时间,没法比。这就是典型的偏科。话说,看到那些代码,就头晕发怵。

其次,对于计算机编程而言,最重要的就是码代码,然后不断调试,最后输出结果。这才是,这门课正确地打开方式。按不说人话的方式解释:及时反馈,在学习过程中的正向激励作用。

2/ 怎样学编程

编程就如同你学习开车,即使,你可以一口气,说出一辆车的全部零部件,以及内燃机进气、压缩、做功和排气过程,但你就是不去练如何开车,怎么上路。你确定,你敢开吗?你敢开,我也不敢坐。

图片发自简书App

同样地,学十几年的英语,应该也有10000 h+,按照一万小时定律,你我英语水平应该都不错,至少能和老外谈笑风生了吧!

实际呢?面对漂亮的金发女郎,你不敢说,缺乏自信,怕嘲笑,中式英语,说一句想十句。妹子撩不到,反而成为笑柄。

英语面试时,灵活的问题让你力不从心,之前的准备,全部成泡影。最终,专业面过,却死在英语上,不能得到心仪工作。多么可惜!

图片发自简书App

学习编程、开车和英语,都有一个共同特征:需要不断练习,练习,再练习。最终,达到,像卖油翁一样境界。我亦无他,惟手熟尔!

掌握一门新技能,上课只能吸收10%,与人交流吸收20%,大量练习才能掌握70%。这就是著名的721定律。

3/ 初识python

大学4年,硕士3年,留学2年,这些年,我和编程形同陌路,不再交集。曾想,编程那段黑历史,将会被埋藏于心,永远不在触及。

人总是会把话说的太早,太绝而不留余地。每次都是不断打自己脸,不停地打,打到已经无感。

2018年某一天,python突然变得很火。媒体宣传学习python的巨大好处与前景。原因很简单,人工智能将python推向了顶峰。

一时间,全民编程的浪潮此起彼伏。python 列入全国计算机二级取代VB,部分城市试点,python引入高中。互联网时代,已经离不开编程。

爬虫、开发网页、开发游戏、数据分析几大用途映入眼帘。第一次听说爬虫,倍感好奇。曾猜想,编一个蜘蛛出来,什么鬼?查阅后才知道,通过程序,爬取网页数据,达到数据收集目的。

图片发自简书App

此时,脑洞大开,放只爬虫,游离于互联网,爬取最热图书、最热电影、批量下载图片和歌曲和招聘信息等等。

这是多么有意思事情。想到这个,不免会心一笑。但是,一想到,大一C语言的黑历史,就只能,呵呵!

大一编程学那么差,都挂科了,50分啊!时隔9年,你觉得,编程小白,能学会的概率有多少,别搞笑了,好吗?

这是充满否定和鄙视的挑衅。(我怎么可以这么说自己!)如果,换成以前的我,我会认怂。是的,我不敢跨越黑历史,我不敢揭开那伤疤,我不想被嘲笑,我怕失败。

但是,现在的我,却发生巨大变化。认知的提升,思维的转变,一个新的指南针,在迷茫中,给我方向。

感谢那些,曾陪我度过孤单岁月的鸡汤、励志、认知和思考类的书籍。

不管,这些书是否含有成功学的意味,但是,我深深的明白,我快30岁了,我能试错的机会,越来越少,成本越来越高。

岁月流逝,未曾感受,如此之快。

保持学习新知识的能力,将成为今后快速迭代升级必备能力。多一个技能,多条路。用20%的时间,掌握一个技能的80%,就是胜利。记不清在哪,看过这样一句话,不管有多难,请把自己活成一支军队。

如何用有限的班后时间,做到入门爬虫这个技能,是我当前的主要目标。我清楚,我不需要花大量时间和精力,让它如数家珍。

因为,我不是专业出身,我已经不在年轻,能扛得住N年码代码的身心俱疲。毕竟,中年危机就在不远的5-6年。码代码,最后,拼的也是身体!

4/ python学习之路

前面也谈过著名的721定律,因此,学习python最好方法,就是以练带学,不断思考和总结。

1)上课,过一遍基础知识点

对于小白的我来说,一定要先过一遍基础知识,了解这个语言的语法规则和结构,比如,常用的列表、字典等的用法。

建议通过视频学习,这样不但节省时间,而且效果很好。学习网站可参照之前文章<<如果,这辈子不这么做,你也只能活在妒忌别人的怪圈中,而无能为力>>

图片发自简书App

2)上课,过一遍爬取流程

在熟悉基本基础后,就可以了解爬虫的基本模块,以requests和beautifulsoup为例。

Requests用来下载html 到本地,也就是网页源代码。Beautifulsoup用来解析html,使用css选择器,选取指定的信息(如:评论、阅读量等等)。

最后,将爬取信息,保存在txt和csv格式,用于后续数据分析。这份信息汇总,包含你需要的所有内容。

3)做项目,练习总结

在掌握流程和基本知识以后,就可以实战做项目。在做第一个项目时,问题一定特别多,不要急。这是一个快速爬坡的过程。能否回忆起那个陡峭的学习曲线?问题越多,学的越快。

我做的第一个项目,爬取豆瓣不同标签下最热书单,最终生成词云图(目前,阅读量2800+,感谢大家的支持)。

在本次实战中,问题真是,接连不断,非常打击自信心。自己问过了,无力。度娘问过了,无解。大神问过了,不理。

清晰记得,好几个晚上,毫无进展,停滞不前。对着闪动的光标发呆,写了删,删了写,不断报错,无法debug。

一晚上,碌碌无为,无奈、无助和无解,换来疲惫的身体和大脑。怀疑人生,似乎变得更加有意义。

这些问题,你是否也遇到过?

1)CSS就是选择不上需要内容,输出结果,不是空,就是空!html代码,看得云里雾里。

2)爬下来html一堆乱码,csv结果无法识别,又是乱码,全是乱码,你大爷的,抓狂心都有了。

3)爬一半,报错,无法解码,index 出错,各种错,你错上瘾了,是吧!

4)爬取下来,列表里面数字,无法进行列表的乘除运算,已经int()过,怎么破!

5)代码没变,刚才还能爬下内容,过一会,一个毛也爬不下来,什么情况啊!一下午,就这么浪费了,砸电脑的心的都有。

第一个项目,往往是最难的,但也是刻骨铭心的。流程不熟悉,结构不了解,体系不全面,知识碎片,散落一地,没有形态,真是一地鸡毛。

但就在这种让人近乎绝望的情况下,各个知识之间的关系,逐渐清晰起来,一张知识网逐渐形成。加把劲,这才刚刚开始。

在此基础上,还需要做2件事情,会帮助完善,这张独一无二的知识网,并且越来越密,却来越结实。

4)出报告

每完成一个项目,总结报告,必不可少。一份报告记录这个任务的目的、分析过程和结论,其中,很多细节,将帮助你,加深对项目的理解,以及相关知识的应用。梳理框架,对后续类似项目都有指导意义。

先注重流程逻辑,再考虑设计,不断思考去完善。报告,教程,作品,它们之间的距离,会越来越模糊,你的个人品牌,会越来越显著。

图片发自简书App

5) 总结,搭建知识网络

仔细回忆做项目的过程,拿出纸笔记录流程,几个项目下来,你的项目网络框架就基本搭建完成。

其中,高频知识点,将通过这张网有逻辑地链接起来,它们彼此之间,具有很强的相关性。

还记得初中化学,学过的化学分子结构吗?碳原子通过单键、双键和三键彼此连接,键越多,越难断裂。

知识点彼此连接,越紧密,越难忘记。这就解释了,为什么你孤立地学习一些知识,很容易忘记,真正用的时候完全想不起来的原因。

就拿爬虫为例,在爬取网页时,

(1)需要html中css的知识,找出对应内容的css选择器;

(2)需要列表的知识,将爬取下来的内容,分别存放在不同的列表中;

(3)需要字符串的知识,剔除爬取下来的无用信息等等。

孤立的学习这些知识,顶多让你知道它是什么,仅此而已。而不会知道,在什么情况使用,以何种逻辑关系相互连接。

结构化学习,才是你我需要真正培养的能力。

图片发自简书App

115个小时,我进入一个陌生领域-爬虫(聪明的你,完全不需要这么久)。疯狂练习,结构化思考,将帮助你,快速遇见未来的自己。


相关文章:

1)爬取豆瓣近4000本书,爬虫告诉你,在热门标签下,大众都喜欢看什么书?

2)爬取60000个岗位,爬虫告诉想要找或换工作的你,城市和行业,该怎么选?

3)那些在爱奇艺10000000000+播放量的影视作品,你追过几部?

收藏 0
爬取 知识 学习 python 编程 爬虫
评论 ( 0 )