1. 程式人生 > >專業的“python爬蟲工程師”需要學習哪些知識?

專業的“python爬蟲工程師”需要學習哪些知識?

學到哪種程度

暫且把目標定位初級爬蟲工程師,簡單列一下吧:

(必要部分)

  1. 熟悉多執行緒程式設計、網路程式設計、HTTP協議相關
  2. 開發過完整爬蟲專案(最好有全站爬蟲經驗,這個下面會說到)
  3. 反爬相關,cookie、ip池、驗證碼等等
  4. 熟練使用分散式
  5. 瞭解企業級爬蟲和個人爬蟲的差異(企業級爬蟲,首先在資料量上跟我們平時學習的時候爬蟲,不是同一數量級,資料量大很多。其次,企業級爬蟲程式碼一般部署到專門的爬蟲伺服器上,採取7*24小時執行,所以需要日誌監控,異常維護。

人生苦短,只用Python

爬蟲基礎

學習爬蟲,我們首先要了解什麼是爬蟲以及它的工作流程,知己知彼,方能百戰百勝嘛。當然這些大家都知道的,廢話不多說,先來看看爬蟲基礎知識點。

1、請求與響應

2、爬蟲與反爬蟲

3、開發工具

4、Urllib庫使用詳解與專案實戰

5、requests庫安裝使用與專案實戰

爬蟲基礎最後一彈

好了,如果只是想入個門的話,這些都差不多了,但我想每個學爬蟲的小夥伴,都是想成為一個偉大的爬蟲攻城獅的吧!來來來,讓我們繼續看看進階學習方法。

爬蟲進階

1、爬蟲框架實現

2、破解反爬技術

3、代理池實現

4、模擬登陸

5、pyspider框架

爬蟲高階部分

1、APP的抓取

2、Scrapy框架

3、分散式爬蟲實戰

4、分散式爬蟲部署

如何提升

 

隨便看看知乎上的教程就可以入門了,就Python而言,會requests當然是不夠的,還需要了解scrapy和pyspider這兩個框架,scrapy_redis也是需要理解原理的。

分散式如何搭建、如何解決其中遇到記憶體、速度問題。

參考 scrapy-redis 和 scrapy 有什麼區別?

實際專案經驗

這個面試中肯定會被人問道,如:

  1. 你爬過哪些網站
  2. 日均最大采集量是多少
  3. 你遇到哪些棘手問題,如何解決
  4. 等等

什麼叫全站爬取

我們就拿拉勾來舉例,搜尋關鍵詞,有50頁,不要以為把這50頁爬完就是全站爬取了,你應該想方法把所有資料全部爬下來。

那我們該用什麼辦法,答案是通過篩選縮小範圍,慢慢來就OK了。

同時,每個職位還會有推薦職位,再寫一個採集推薦的爬蟲。

關於反爬

常見的 UA、Refer等需要了解是什麼東西,有些驗證的ID如何產生的,是否必要;關於IP池這塊我不瞭解,不多說,需要注意的是如何設計拉黑機制;模擬登陸也是必要的,fuck-login 可以研究下程式碼,或者提PR。

 

能力是否達標?

想知道很簡單,給個任務,爬取你們當地政府官網上所有新聞。

你會如何思考並設計這個專案?

歡迎留言指出