#我對Python表個白# —— 爬蟲學習總結(2)

總結 | 反思 | 分享

學習Python爬蟲2個月了,一路驚喜一路bug,苦辣酸甜不言中。今天正好周末,做一下階段性總結。

怎么是總結(2)?因為(1)在這里呀:自學爬蟲一月總結

(還有看到這個標題大家也別太疑惑,只是參加了彭老師的征文大賽順便加上了而已233)

以下內容將圍繞這張圖展開:


一、學習收獲

數據說話

從今年3月初開始,0基礎自學。中間也是斷斷續續,因為還要上課。總共做了主要項目13個,寫了博客16篇。目前在scrapy的進階階段,準備學習分布式。

4月11日開通了知乎專欄,現在剛好1個月。

5月14日 15:50為止,各種數據

簡書文集:文章16,文集訂閱82,瀏覽5.8k,評論130,喜歡123,贊賞10

知乎專欄:文章16,專欄關注934,收藏2.0K,評論307,贊同659,贊賞4

github項目:star25,fork 9,watch 3

其它:收到不少盆友的反饋,有問如何學習爬蟲的,有在評論區支持鼓勵的,有大神提意見給建議的,有私信我要堅持寫下去的,值乎問問題的,直接過來問聯系方式的233,甚至有專欄、公眾號求轉載的,還有半夜兩點過來文章下面贊賞支持的。。。


我一個萌新,真的是受寵若驚啊!

8976309452


收到這么多反饋和鼓勵,出乎意料,超級超級感動~

特此謝謝每一位關注、支持我的朋友們,寬容我的爛文、爛代碼還愿意提供寶貴建議的大神們,鞠躬,筆芯,么么噠 \^O^/~

我會繼續保證文章的質量,同時努力學習出更高階、更系統的內容。

還有這段時間,不僅學到了一些python爬蟲知識,對python編程開始有了接觸和了解,隨著學習也認識了自己的不足。學習過程中認識了很多熱愛python、熱愛數據科學的盆友和大神,從他們身上也學到很多東西。



二、一些分享

其實本來想寫"經驗分享",可是想想編程界臥虎藏龍,而且自己目前學的連冰山一角都算不上,這樣豈不班門弄斧(其實我也不造,當初哪來的耿直勇氣開知乎專欄@_@)

坑已然挖好不好回頭,還是談談我的看法吧,也算是回答之前一些盆友們的問題~ (一些觀點不成熟,大神們笑笑就好~)

1)如何學習python爬蟲

2)如何做好一個項目

3)如何寫好一篇博客


1)學習python爬蟲

1、學習路線及資料推薦

這個問題有一些同學來問過,我在自學爬蟲一月總結提過一些但不是很全,現在進行一下補充。

(當然以下僅是我個人的看法,每個人學習曲線、學習方式都不一樣,做個參考就好)

首先建議先對爬蟲做個大概了解,推薦董大的Live:爬蟲從入門到進階

然后就是Python基礎學習,書籍可以《簡明python教程》或者《learn python the hard way》等,博客推薦廖雪峰老師的Python3教程 。單單為了學習爬蟲,可以先跳過web開發部分。

爬蟲基礎urllib,re,requests,BeautifulSoup,Xpath等等,崔慶才大神的博客:Python爬蟲學習系列教程,單單看看這些基礎知識肯定枯燥,結合例子最好不過啦,于是可以循序漸進的看看上面例子。中間會需要一些http知識,可以看《圖解http》。

爬完文字爬圖片,爬完靜態爬動態。然后遇到Ajax網頁就需要抓包,這個就講的不錯:爬蟲從入門到精通——網頁的下載,順帶提一下這個專欄一些基礎知識很詳細。

爬到拉勾、豆瓣了,會獨立(對是獨立)分析網頁抓包,能夠繞過一些簡單的反爬,進行文件、excel、數據庫等簡單存儲,這時候就差不多爬蟲入門了。

然后可以學習爬蟲框架如scrapy、pyspider等。scrapy基礎推薦專欄木制robot的爬蟲世界,很詳細,而且值得一提作者自學成功轉行了,比較遺憾的是只介紹了幾篇。(目前我也在看scrapy,想匯總做一個較系統的系列。不過慚愧,學習速度還是太慢了)

進階篇,最常見多進程、多線程,selenium,PhantomJS,網上教程很散需要自己挖掘,還是回歸靜謐的博客

其實進階的話還遠不止這些,在知乎上看到幾個思路:Python爬蟲進階?-知乎,這個問題xlzd王家葳這兩個大神的答案很精彩。

然后董大(董偉明)在 python分享中初級爬蟲教程泛濫是否有其語法特征和生態環境的鍋?- 知乎 中提供的思路也非常不錯。

應該了解到要做的東西其實還很多,代理IP池、Cookies池、驗證碼、分布式、緩存、調度、反反爬等等,需要自己慢慢摸索了。

推薦幾個大神的博客:

簡書:蝸牛仔treelakeqiyecomboo(這家伙已經在分析框架的源碼了)

知乎專欄:一起學習python網絡爬蟲擼代碼,學知識數據冰山學習編程


笑虎大神的專欄"擼代碼、學知識",文章質量很高,且不限于Python爬蟲,里面甚至有一些Flask開發的介紹等等。

"數據冰山"人氣旺,偏重于數據分析挖掘,不過可以擴大視野不是,爬蟲本來就是用來分析的嘛~~

還有"學習編程"是“數據帝”路人甲路人甲的專欄(大家都應該不陌生),除了學習借鑒數據分析的思維方式,里面偶爾會有一些學習編程的資料推薦,不能太棒哦。

此外還可以去github上找,很多不說了,提一個有趣的反反爬倉庫:Anti-Anti-Spider,應該很多人都知道。

之后還可以分析框架源碼,開發自己的爬蟲框架,甚至寫可視化的爬蟲。

(當然這時你很可能已經不滿足于爬蟲了,學學web開發就挺好,搞搞數據分析機器學習也不錯)

當你已經"爬過萬水千山",瀏覽器能get基本也能爬到,并且有能力開發自己的爬蟲框架,這時你就已經達到一種境界了,所謂"看山還是山,看水還是水"。

更高級的還有搜索引擎,好遠啊不扯了>_<

目前暫時就是這些,想到再補充,也歡迎大家評論區提建議~


2、我的學習方式

之前的總結說過了:自學爬蟲一月總結

總的來說:大體需求、項目驅動、知識點復查、博客記錄、定時總結


3、其它,比如是否需要培訓

一句話:于心而言真的不需要,看個人,小心智商稅



2 )做好一個項目

python爬蟲學習對實戰的要求很強,除了get基礎技能,反反爬經驗也是必需在實戰中積累的。

不過項目在精而不在多,入門后你會發現許多東西都是如出一轍,許多網站通過抓包調用API就可實現,這時候真的沒有必要再迷戀在抓取簡單網頁的成就感中了(這是不是爬蟲初級教程泛濫的原因之一233),你需要趕緊的進階,進階,進階!!!

我覺得關鍵在于:如何設計學習路線,通過較少的項目,循序漸進地進行爬蟲學習。

不過做好一個項目也不是那么簡單的事情,細節的東西太多了,首先安裝都能成為一個坑。不信你看,這是我安裝mysql遭遇的:


還好寶寶心理素質比較強,那如何做好一個項目呢,在明確好學習路線后,有幾個點

1、基礎知識

基礎知識一般官網資料就可以了。有時覺得一些博客更淺簡易懂,而且很多東西是經過作者思考過歸納匯總的,可以借鑒。

2、分析源碼和網站結構、制定抓取策略

其實我很少看審查元素,一般是直接分析源碼。這么做是因為,我們的瀏覽器訪問網頁時“看到”的東西,其實是源碼。如果你是初學,不要怕密集恐懼啦,養成習慣后漸漸會變得很有意思哦。

比如我在爬pexels圖片網時,發現其圖片接口就隱藏在源碼中;分析豆瓣發現其分PC端和移動端,兩者網頁不太一樣,而且分析發現不登陸的話,某些數據是無法爬下來的;分析拉勾時發現了它的頁面變動的規律,一個障眼法22333 。

還有網站結構,主要是找出url規律和網站反爬策略,對于有一點前端經驗的盆友來說,簡直不是事兒呀。

然后就是指定爬取策略了,可以根據html結構選擇最合適、高效的數據提取方式,是re,BeautifulSoup,還是Xpath?

3、先自己做,有自己的想法

我的話最初兩個例子是照著崔慶才大神的博客來的,后面就全自己找了。個人覺得在大概摸清爬蟲程序的套路后(一兩個例子),遇到一個項目,自己想思路,自己寫程序,實在不行再借鑒別人的方法。

紙上得來終覺淺,絕知此事要躬行,別人的收獲畢竟也只是別人的,不親自探索,還是很難真正學到東西

4、它山之石,可以攻玉

有時候我們借鑒別人一些好的想法,將其運用于我們的項目中,然后可以事半功倍。(感嘆互聯網的開源精神、開放共享環境就是棒呀) 但并不意味著將復制粘貼就完了,至少得理解一下原理和思路吧,加上自己的想法那更好啦~

我的博客前兩篇,雖然是跟著崔慶才大神的博客學習的,但是真正爬取的時候并不是一步步照搬,而是自己適當改了下; 在Scrapy之斷點續爬(存入MySQL)中,斷點續爬想法來自知乎,但發現實例很少啊,于是自己寫程序實踐了它,參考了大神的博客的一小段,但覺得累贅根據情況改了一下,然后又查資料發現了另一種python中操作mysql的方法。

你看,大概就這樣,有點github上fork思想的意味?

5、尋求最佳方案

這里就不贅述了。尋求解決問題新途徑,有沒有別的方式呢,怎樣實現最簡單有效美好?不斷改bug,不斷提需求,再改,直到滿意為止。(記得當初做那個pixabay圖片下載器也改了好久)

6、提高搜商

何為“搜商”,就是搜索定位有效資源的能力。簡直程序員必備技能啊。學習過程中各種bug,遇到問題首先自己解決最靠譜。

目前網絡這么發達,百度、知乎、谷歌、知乎、簡書、stackoverflow、CSDN等等,一般的小坎還是容易過得去的。

逛逛別人的博客,或者瀏覽某個社區,偶爾還會發現一些好的知識點和思路呢。(之前在stackoverflow上發現個神奇的語法糖,于是拿來用了,爬教務網僅花代碼30行左右)

7、善用工具

不說太多,IDE用Pycharm就不錯,抓包fiddler,數據分析BDP簡單粗暴,數據庫可視化Navicat等等,利用工具提高開發效率。

8、學會提問

來自知乎路人甲,很贊:如何向別人請教問題才能得到解答回復?


3)寫好一篇博客

1、明確主題

2、突出亮點、有自己的想法

建立在做好項目的基礎上,不贅述。

3、充實內容

需要準備好各種材料。

4、邏輯清晰

我一般采用“總分總”模式,分點展開,文末最后簡要總結。覺得這樣不僅僅邏輯清晰,也可以鍛煉自己歸納總結的能力,同時查找的時候也非常方便:D

5、語言鮮明

哈哈這一點上我可能是假的段子手→_→

但,還是建議嚴肅一點來寫技術文,畢竟,抖機靈也是要看天賦噠:D (逃~

6、尊重版權

引用別人的東西,最好注明來源、作者。

7、產品意識

這一點最初是在彭老師的文章里看到的,很有意思(目前找不到了orz),大概意思是:如何最小化的代價做出一個東西,如何擴展形成一個系列體系?

其實與爬蟲學習路線設計緊密相關,形成體系后也益處多多,若一個完整的知識體系,復習起來基本不費力?



三、總結反思

1、不足之處

首先基礎存在很大漏洞,才發現其實前面爬蟲中,根本就不需要多少python知識的,基本的數據結構、文件操作、類與模塊、函數和面向對象都差不多了。到了Scrapy這一塊,裝飾器初露水面,各種中間件寫起來就費力了,目前惡補基礎中。

其次是浮躁,感覺是沒有以前靜的下心,是因為夏天到了還是進階本來就麻煩?

最后說一下,爬蟲真的是上手快精通難,越到后面需要考慮的東西就越多,爬與反爬之間的博弈愈發強勢,做一個項目花時間越來越多了,挺累。

2、進階的一些想法

肯定得先補好基礎啦,然后分布式希望月底之前拿下來,暑假想學flask搭個博客,之后還想學算法(貌似時間不夠用啊(?Д?)?)



四、我的爬蟲博客系列

前兩天有位大神在簡書下寫了評論,很慶幸與其交流了一下,大神的建議很有用,同時也愈發感覺進階之路漫漫。

之后,居然有人說我的博客越來越成體系了,很驚訝。這一說還真萌生了將其擴充成一個體系的想法,然后就是下面這樣:

分四個階段:

入門篇、框架篇、進階篇、源碼分析篇

<入門篇>

1、一行正則抓取糗事百科

2、百度貼吧

3、pixabay圖片下載器

4、破解pexels高清原圖

5、抓包爬遍info神回復(玻璃杯事件)

6、30行代碼獲取教務網成績并存入Excel

7、拉勾網爬蟲(一)

拉勾網爬蟲(二)

8、爬豆瓣張國榮日記(一)

爬豆瓣張國榮日記(二)


<框架篇>(部分待探索學習)

主要介紹Scrapy

1、Scrapy之單級網頁抓取(簡書30日熱門

2、Scrapy爬多級網頁及圖片(一般方法)

3、Scrapy爬多級網頁及圖片(ImagesPipeline)

4、Scrapy抓手機App數據(存入MongoDB )

5、Scrapy實現斷點續爬(存入MySQL)

6、Scrapy之代理ip、ip池

7、Scrapy之Cookies、Cookies池

9、Scrapy-redis構建簡單分布式

10、Scrapy-redis較復雜的分布式


<進階篇>(待探索學習)

1、多線程

2、多進程

3、多線程+多進程

4、selenium、PhantomJS破解JS網頁

6、驗證碼破解

7、視頻類爬蟲系列

8、大規模電商爬蟲系列(淘寶|京東|亞馬遜)

9、自己開發個分布式爬蟲框架(難)

10、寫可視化的爬蟲(難)


<源碼分析篇>(待探索學習)

1、Scrapy源碼分析

2、requests源碼分析等等

(以上也只初步構想,不能保證完全完成)

按順序學習,點亮到進階篇倒數第三個,應該可以找得到工作了吧?

若如期找到工作,會不會很幸福呢



五、最后的總結

不得不說,學習爬蟲真的很真像升級打怪。需要我們不斷對自己提需求,解決掉一個又一個問題后,提升自信心。整個過程涵蓋解決問題、總結歸納、表達展現、形成系列等環節,但其實深入思考,發現最終都可以歸結為一個思維方式的終極問題。

面對一個問題,如何定位有效資源,如何快速熟悉一個領域,如何制定初步方案,如何解決執行中出現的問題,如何不斷優化、維護并打造一款產品系列......這些思維方式,其實是放之四海而皆準的。


慣用總結套路就不來了,放個圖


16篇文章,一個爬蟲系列,一篇總結文,加一個思維導圖。勉強算有理有據,邏輯清晰?算不算對python表了個白?


如果這都不算愛

那我

我就

抖個機靈吧~

(實打干貨沒人看,抖個機靈千百贊?)

總是套路留人心啊~


23333


都讓一下,我要放大招了,哼~

表白文藝范,怎能少了詩?不說了,總之



路漫漫其修遠兮,吾將上下而爬蟲

洛陽親友如相問,唯有python在心中

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容

  • 爬蟲文章 in 簡書程序員專題: like:128-Python 爬取落網音樂 like:127-【圖文詳解】py...
    喜歡吃栗子閱讀 21,909評論 4 411
  • 爬蟲文章 in 簡書程序員專題: like:128 - Python 爬取落網音樂 like:127 - 【圖文詳...
    treelake閱讀 29,565評論 33 638
  • 文/約人 尋找 其實我們每天都在尋找 尋找著自己的生活、愛情、朋友、學業 尋找自己相信會幸福的生活 可以像海子所描...
    約人閱讀 349評論 4 11
  • 上大學的時候,拼命參加各種學校、系里舉行的活動,一是為了分數,參加活動多了,分數越高,拿獎學金的可能性越高;...
    我心翱翔閱讀 389評論 0 1
  • 找一個安靜的角落,靜靜的呆著,看人群走過,看日出日落,看飛鳥掠過,看白云朵朵,潮起潮落,唯獨,看不見你的身影,看不...
    寫給巧克力的歌閱讀 278評論 0 0