爬蟲學到什麽程度可以去找工作?這是我給你的一個建議!
最近很多朋友問我,我在自學爬蟲,學到什麽程度可以去找工作呢?
這篇文章會說說我自己的心得體驗,關於爬蟲、關於工作,僅供參考。
學到哪種程度
暫且把目標定位初級爬蟲工程師,簡單列一下吧:
(必要部分)
語言選擇:一般是了解Python、Java、Golang之一
熟悉多線程編程、網絡編程、HTTP協議相關
開發過完整爬蟲項目(最好有全站爬蟲經驗,這個下面會說到)
反爬相關,cookie、ip池、驗證碼等等
熟練使用分布式
(非必要,建議)
了解消息隊列,如RabbitMQ、Kafka、Redis等
具有數據挖掘、自然語言處理、信息檢索、機器學習經驗
熟悉APP數據采集、中間人代理
大數據處理(Hive/MR/Spark/Storm)
數據庫Mysql,redis,mongdb
熟悉Git操作、linux環境開發
讀懂js代碼,這個真的很重要
如何提升
隨便看看知乎上的教程就可以入門了,就Python而言,會requests當然是不夠的,還需要了解scrapy和pyspider這兩個框架,scrapy_redis也是需要理解原理的。
分布式如何搭建、如何解決其中遇到內存、速度問題。
參考 scrapy-redis 和 scrapy 有什麽區別?
什麽叫全站爬取
最簡單的拿拉鉤來舉例,搜索關鍵詞,有30頁,不要以為把這30頁爬完就是全站爬取了,你應該想方法把所有數據全部爬下來。
什麽辦法,通過篩選縮小範圍,慢慢來就OK了。
同時,每個職位還會有推薦職位,再寫一個采集推薦的爬蟲。
這個過程需要註意的是如何去重,Mongo可以、redis也可以。
參考 Scrapy中如何提高數據的插入速度
實際項目經驗
這個面試中肯定會被人問道,如:
你爬過哪些網站
日均最大采集量是多少
你遇到哪些棘手問題,如何解決
等等
那麽怎麽找項目呢?比如我要爬微博數據,去Github中搜索下,項目還算少嗎?
語言選擇
我自己建議是Python、Java、Golang最好都了解,Java爬蟲的也很多,但是網上教程幾乎都是Python的,悲哀。
最後說下Golang,Golang真的很牛逼,說個數字,Golang可以每分鐘下載網頁數量 2W ,Python可以嗎~~
關於反爬
常見的 UA、Refer等需要了解是什麽東西,有些驗證的ID如何產生的,是否必要;關於IP池這塊我不了解,不多說,需要註意的是如何設計拉黑機制;模擬登陸也是必要的,fuck-login 可以研究下代碼,或者提PR。
模擬登陸其實就是一步步的請求,保存cookie會話
如何判斷能力足夠
很簡單,給個任務,爬取知乎上所有問題。
你會如何思考並設計這個項目?
歡迎留言指出
爬蟲學到什麽程度可以去找工作?這是我給你的一個建議!