爬蟲學到什麼程度可以去找工作

CSDN 程式人生發表於2018-06-07

點選上方“程式人生”,選擇“置頂公眾號”

第一時間關注程式猿(媛)身邊的故事


640?wx_fmt=jpeg

*圖片版權歸 CSDN 所有

高考第一天:上班路上看到頂著炎炎烈日去高考的考生們,突然有種今天上班即使加班也很幸福的趕腳。


作者

小歪

這篇文章會說說我自己的心得體驗,關於爬蟲、關於工作,僅供參考。

文章如需轉載,請聯絡原作者授權。


學到哪種程度

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

(必要部分)

  1. 語言選擇:一般是瞭解Python、Java、Golang之一

  2. 熟悉多執行緒程式設計、網路程式設計、HTTP協議相關

  3. 開發過完整爬蟲專案(最好有全站爬蟲經驗,這個下面會說到)

  4. 反爬相關,cookie、ip池、驗證碼等等

  5. 熟練使用分散式

(非必要,建議)

  1. 瞭解訊息佇列,如RabbitMQ、Kafka、Redis等

  2. 具有資料探勘、自然語言處理、資訊檢索、機器學習經驗

  3. 熟悉APP資料採集、中間人代理

  4. 大資料處理(Hive/MR/Spark/Storm)

  5. 資料庫Mysql,redis,mongdb

  6. 熟悉Git操作、linux環境開發

  7. 讀懂js程式碼,這個真的很重要

如何提升

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

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

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

640?wx_fmt=jpeg

什麼叫全站爬取

最簡單的拿拉鉤來舉例,搜尋關鍵詞,有30頁,不要以為把這30頁爬完就是全站爬取了,你應該想方法把所有資料全部爬下來。

什麼辦法,通過篩選縮小範圍,慢慢來就OK了。

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

640?wx_fmt=png

這個過程需要注意的是如何去重,Mongo可以、redis也可以

參考 Scrapy中如何提高資料的插入速度

實際專案經驗

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

  1. 你爬過哪些網站

  2. 日均最大采集量是多少

  3. 你遇到哪些棘手問題,如何解決

  4. 等等

那麼怎麼找專案呢?比如我要爬微博資料,去Github中搜尋下,專案還算少嗎?

640?wx_fmt=png

模擬登陸其實就是一步步的請求,儲存cookie會話

語言選擇

我自己建議是Python、Java、Golang最好都瞭解,Java爬蟲的也很多,但是網上教程幾乎都是Python的,悲哀。

最後說下Golang,Golang真的很牛逼,說個數字,Golang可以每分鐘下載網頁數量 2W ,Python可以嗎~~

640?wx_fmt=png

宣傳下自己的刷題專案 Leetcode Solutions By All Language

關於反爬

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

640?wx_fmt=png

如何判斷能力足夠

很簡單,給個任務,爬取知乎上所有問題。

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

歡迎留言指出。

以上僅為個人看法,若有不足之處請指出,希望可以幫助你。


- The End -

程式人生(北京地區)交流微信群,瞭解一下?

640?wx_fmt=jpeg

  如群滿可新增小編微信,備註“北京 ”:

程式 丨 druidlost  

小七 丨 duoshangshuang

 拉你入群  


「若你有原創文章想與大家分享,歡迎投稿。」

投稿請備註#投稿#


點選圖片get往期內容


640?wx_fmt=png

640?wx_fmt=gif

相關文章