爬蟲學到什麼程度可以去找工作? 這是我給你的一個建議!

來源:互聯網
上載者:User

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

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

學到哪種程度

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

(必要部分)

語言選擇:一般是瞭解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可以嗎~~ 小編推薦一個學Python的學習裙【 二二七,四三五,四五零 】,無論你是大牛還是小白,是想轉行還是想入行都可以來瞭解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!希望新手少走彎路

關於反爬

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

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

如何判斷能力足夠

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

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

歡迎留言指出

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

文末知識點摘要:Python 中,字串"串連"效率最高的方式是?一定出乎你的意料

網上很多文章人云亦云,字串串連應該使用「join」方法而不要用「+」操作。說前者效率更高,它以更少的代價建立新字串,如果用「+」串連多個字串,每串連一次,就要為字串分配一次記憶體,效率顯得有點低,這樣的解釋聽起來很有道理,但 Cpython 解譯器是不是真的按照我們說的這樣呢?

今天做了一個實驗,結果可能會出乎你的意料。

上面 3 個函數分別表示用「join」和「format」還有「+」操作來連接字串,從 0 到 n,總共 n 個數字串連起來構成一個新的字串,形如:1234567891011……n。

下面是測試指令碼:

每組取了15個樣本資料,分別用 1,2,4,8,… 8192 個數字相串連,得到的統計資料可以看出,在資料量非常少的時候,三者效率幾乎沒什麼差異,當少於20個字串串連時,用「+」效率甚至更高,不過,隨著字串的個數增多,「join」方法發揮出來效果了,而用「+」越來越慢。這點無論是 python2 還是 python3 基本上是一樣的。

所以結論是:如果串連的字串很少,只有幾個或者十幾個,完全可以通過「+」來串連,畢竟這種方式更直白,而超過一定個數之後,則應該採用「join」方法,只有在操作大資料的時候,兩者的對比才明顯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.