1. 程式人生 > >IT行業老程序員的經驗之談:爬蟲學到什麽程度可以找到工作?

IT行業老程序員的經驗之談:爬蟲學到什麽程度可以找到工作?

最簡 機制 還需要 機器人 程序員 sql python 理解 全部

技術分享圖片

什麽是爬蟲?

百度百科:網絡爬蟲(又被稱為網頁,網絡機器人,在社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取信息的程序或者腳本。

最近很多朋友問我,學習爬蟲,學到什麽程度可以去找工作呢?

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

為什麽那麽多人選擇學習爬蟲?

  1. 爬蟲入門簡單
  2. 薪資客觀
  3. 求職門檻不高

一線城市(北京為例)

技術分享圖片

96.1%薪資是在10K以上,88.1%的人薪資是在10-30K,所以為什麽說薪資非常客觀了。

二線城市(成都為例)

技術分享圖片

學到哪種程度可以就業

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

(必要部分)

  • 語言選擇:一般是Python
  • 熟悉多線程編程、網絡編程、HTTP協議相關
  • 開發過完整爬蟲項目(最好有全站爬蟲經驗,這個下面會說到)
  • 反爬相關,cookie、ip池、驗證碼等等
  • 熟練使用分布式

(非必要,建議)

  • 了解消息隊列,如RabbitMQ、Kafka、Redis等
  • 具有數據挖掘、自然語言處理、信息檢索、機器學習經驗
  • 熟悉APP數據采集、中間人代理
  • 大數據處理(Hive/MR/Spark/Storm)
  • 數據庫Mysql,redis,mongdb
  • 熟悉Git操作、linux環境開發
  • 讀懂js代碼,這個真的很重要

技術分享圖片

如何提升

技術分享圖片

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

  • 分布式如何搭建、
  • 如何解決其中遇到內存、速度問題。

什麽叫全站爬取

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

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

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

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

實際項目經驗

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

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

那麽怎麽找項目呢?比如我要爬微博數據,去Github中搜索下,項目還算少嗎?

技術分享圖片

關於反爬

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

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

技術分享圖片

如何判斷能力足夠

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

你會如何思考並設計這個項目?

歡迎留言指出

技術分享圖片

IT行業老程序員的經驗之談:爬蟲學到什麽程度可以找到工作?