09.04 學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓



2008年的7月,那是我過的最不開心一個暑假。90多分的高數帶著50多分的C語言回家。這是我大學期間第一個掛科。都說沒有掛科的大學是不完整的,但是等你掛了以後,才發現更不完整。

仔細回想那一學期的學習狀態,這樣的結果也算是合情合理。

首先,在學習C語言時,僅靠上課和少量的課後習題,壓根不夠。相比在高數上花的時間,沒法比。這就是典型的偏科。話說,看到那些代碼,就頭暈發怵。

其次,對於計算機編程而言,最重要的就是碼代碼,然後不斷調試,最後輸出結果。這才是,這門課正確地打開方式。按不說人話的方式解釋:及時反饋,在學習過程中的正向激勵作用。

怎樣學編程

編程就如同你學習開車,即使,你可以一口氣,說出一輛車的全部零部件,以及內燃機進氣、壓縮、做功和排氣過程,但你就是不去練如何開車,怎麼上路。你確定,你敢開嗎?你敢開,我也不敢坐。

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓

同樣地,學十幾年的英語,應該也有10000 h+,按照一萬小時定律,你我英語水平應該都不錯,至少能和老外談笑風生了吧!

實際呢?面對漂亮的金髮女郎,你不敢說,缺乏自信,怕嘲笑,中式英語,說一句想十句。妹子撩不到,反而成為笑柄。

英語面試時,靈活的問題讓你力不從心,之前的準備,全部成泡影。最終,專業面過,卻死在英語上,不能得到心儀工作。多麼可惜!

學習編程、開車和英語,都有一個共同特徵:需要不斷練習,練習,再練習。最終,達到,像賣油翁一樣境界。我亦無他,惟手熟爾!

掌握一門新技能,上課只能吸收10%,與人交流吸收20%,大量練習才能掌握70%。這就是著名的721定律。

初識python

2018年某一天,python突然變得很火。媒體宣傳學習python的巨大好處與前景。原因很簡單,人工智能將python推向了頂峰。

一時間,全民編程的浪潮此起彼伏。python 列入全國計算機二級取代VB,部分城市試點,python引入高中。互聯網時代,已經離不開編程。

爬蟲、開發網頁、開發遊戲、數據分析幾大用途映入眼簾。第一次聽說爬蟲,倍感好奇。曾猜想,編一個蜘蛛出來,什麼鬼?查閱後才知道,通過程序,爬取網頁數據,達到數據收集目的。

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓

此時,腦洞大開,放只爬蟲,遊離於互聯網,爬取最熱圖書、最熱電影、批量下載圖片和歌曲和招聘信息等等。

這是多麼有意思事情。想到這個,不免會心一笑。但是,一想到,大一C語言的黑歷史,就只能,呵呵!

大一編程學那麼差,都掛科了,50分啊!時隔9年,你覺得,編程小白,能學會的概率有多少,別搞笑了,好嗎?

這是充滿否定和鄙視的挑釁。(我怎麼可以這麼說自己!)如果,換成以前的我,我會認慫。是的,我不敢跨越黑歷史,我不敢揭開那傷疤,我不想被嘲笑,我怕失敗。

但是,現在的我,卻發生巨大變化。認知的提升,思維的轉變,一個新的指南針,在迷茫中,給我方向。

感謝那些,曾陪我度過孤單歲月的雞湯、勵志、認知和思考類的書籍。

保持學習新知識的能力,將成為今後快速迭代升級必備能力。多一個技能,多條路。用20%的時間,掌握一個技能的80%,就是勝利。記不清在哪,看過這樣一句話,

不管有多難,請把自己活成一支軍隊。

如何用有限的班後時間,做到入門爬蟲這個技能,是我當前的主要目標。我清楚,我不需要花大量時間和精力,讓它如數家珍。

因為,我不是專業出身,我已經不在年輕,能扛得住N年碼代碼的身心俱疲。畢竟,中年危機就在不遠的5-6年。碼代碼,最後,拼的也是身體!

python學習之路

學習python最好方法,就是以練帶學,不斷思考和總結。

上課,過一遍基礎知識點

對於小白的我來說,一定要先過一遍基礎知識,瞭解這個語言的語法規則和結構,比如,常用的列表、字典等的用法。

建議通過視頻學習,這樣不但節省時間,而且效果很好。

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓

上課,過一遍爬取流程

在熟悉基本基礎後,就可以瞭解爬蟲的基本模塊,以requests和beautifulsoup為例。

Requests用來下載html 到本地,也就是網頁源代碼。Beautifulsoup用來解析html,使用css選擇器,選取指定的信息(如:評論、閱讀量等等)。

最後,將爬取信息,保存在txt和csv格式,用於後續數據分析。這份信息彙總,包含你需要的所有內容。

做項目,練習總結

在掌握流程和基本知識以後,就可以實戰做項目。在做第一個項目時,問題一定特別多,不要急。這是一個快速爬坡的過程。能否回憶起那個陡峭的學習曲線?問題越多,學的越快。

我做的第一個項目,爬取豆瓣不同標籤下最熱書單,最終生成詞雲圖(目前,閱讀量2800+,感謝大家的支持)。

在本次實戰中,問題真是,接連不斷,非常打擊自信心。自己問過了,無力。度娘問過了,無解。大神問過了,不理。

清晰記得,好幾個晚上,毫無進展,停滯不前。對著閃動的光標發呆,寫了刪,刪了寫,不斷報錯,無法debug。

一晚上,碌碌無為,無奈、無助和無解,換來疲憊的身體和大腦。懷疑人生,似乎變得更加有意義。

這些問題,你是否也遇到過?

1)CSS就是選擇不上需要內容,輸出結果,不是空,就是空!html代碼,看得雲裡霧裡。

2)爬下來html一堆亂碼,csv結果無法識別,又是亂碼,全是亂碼,你大爺的,抓狂心都有了。

3)爬一半,報錯,無法解碼,index 出錯,各種錯,你錯上癮了,是吧!

4)爬取下來,列表裡面數字,無法進行列表的乘除運算,已經int()過,怎麼破!

5)代碼沒變,剛才還能爬下內容,過一會,一個毛也爬不下來,什麼情況啊!一下午,就這麼浪費了,砸電腦的心的都有。

第一個項目,往往是最難的,但也是刻骨銘心的。

流程不熟悉,結構不瞭解,體系不全面,知識碎片,散落一地,沒有形態,真是一地雞毛。

但就在這種讓人近乎絕望的情況下,各個知識之間的關係,逐漸清晰起來,一張知識網逐漸形成。加把勁,這才剛剛開始。

在此基礎上,還需要做2件事情,會幫助完善,這張獨一無二的知識網,並且越來越密,卻來越結實。

出報告

每完成一個項目,總結報告,必不可少。一份報告記錄這個任務的目的、分析過程和結論,其中,很多細節,將幫助你,加深對項目的理解,以及相關知識的應用。梳理框架,對後續類似項目都有指導意義。

先注重流程邏輯,再考慮設計,不斷思考去完善。報告,教程,作品,它們之間的距離,會越來越模糊,你的個人品牌,會越來越顯著。

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓

總結,搭建知識網絡

仔細回憶做項目的過程,拿出紙筆記錄流程,幾個項目下來,你的項目網絡框架就基本搭建完成。

其中,高頻知識點,將通過這張網有邏輯地鏈接起來,它們彼此之間,具有很強的相關性。

還記得初中化學,學過的化學分子結構嗎?碳原子通過單鍵、雙鍵和三鍵彼此連接,鍵越多,越難斷裂。

知識點彼此連接,越緊密,越難忘記。這就解釋了,為什麼你孤立地學習一些知識,很容易忘記,真正用的時候完全想不起來的原因。

就拿爬蟲為例,在爬取網頁時,

(1)需要html中css的知識,找出對應內容的css選擇器;

(2)需要列表的知識,將爬取下來的內容,分別存放在不同的列表中;

(3)需要字符串的知識,剔除爬取下來的無用信息等等。

孤立的學習這些知識,頂多讓你知道它是什麼,僅此而已。而不會知道,在什麼情況使用,以何種邏輯關係相互連接。

結構化學習,才是你我需要真正培養的能力。

結尾福利啦 :獲取方式,轉發,私信“資料”即可。

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓

學習python12小時後,告訴想學爬蟲的你,別怕,爬蟲,沒那麼難抓


分享到:


相關文章: