1. 談爬蟲工程師的價值
大數(shù)據(jù)時代已到,數(shù)據(jù)越來越具有價值了,沒有數(shù)據(jù)寸步難行,有了數(shù)據(jù)好好利用,可以在諸多領域干很多事,比如很火的互聯(lián)網(wǎng)金融。從互聯(lián)網(wǎng)上爬來自己想要的數(shù)據(jù),是數(shù)據(jù)的一個重要來源,而且往往是必不可少的來源。所有,目前,爬蟲工程師是一個非常吃香的職位,工資往往都不低,就是要耐得住寂寞了。那爬蟲工程師的價值也就是能穩(wěn)定的、高效的和實時的帶來數(shù)據(jù)。
2. 爬蟲(或互聯(lián)網(wǎng)數(shù)據(jù)采集)怎么入門
爬蟲可以很快的入門,但要做的真正大神,還必須不斷實踐。因為,一旦真正爬數(shù)據(jù)的時候就會出現(xiàn)各種問題,因為爬蟲本質(zhì)是一種對抗性的工作,你需要和反爬人員斗智斗勇。不過,這個過程會充滿無窮的樂趣,還會把你錘煉成真正的爬蟲高手。
3. 專門為爬蟲入門而寫的知乎爬蟲
這里,耗費了不少的業(yè)余時間,專門為爬蟲入門寫了一個知乎爬蟲。為什么選擇知乎呢?應為這里例子可以盡量多的將爬蟲涉及的技術(shù)點包含進去,同時又不至于那么復雜,方便入門。下面說明知乎爬蟲的源碼和涉及主要技術(shù)點:
模擬登錄(爬蟲主要技術(shù)點1)
要爬去需要登錄的網(wǎng)站數(shù)據(jù),模擬登錄是必要可少的一步,而且往往是難點。知乎爬蟲的模擬登錄可以做一個很好的案例。要實現(xiàn)一個網(wǎng)站的模擬登錄,需要兩大步驟是:(1)對登錄的請求過程進行分析,找到登錄的關(guān)鍵請求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過程。
網(wǎng)頁下載(爬蟲主要技術(shù)點2)
模擬登錄后,便可下載目標網(wǎng)頁html了。知乎爬蟲基于HttpClient寫了一個網(wǎng)絡連接線程池,并且封裝了常用的get和post兩種網(wǎng)頁下載的方法。
自動獲取網(wǎng)頁編碼(爬蟲主要技術(shù)點3)
自動獲取網(wǎng)頁編碼是確保下載網(wǎng)頁html不出現(xiàn)亂碼的前提。知乎爬蟲中提供方法可以解決絕大部分亂碼下載網(wǎng)頁亂碼問題。
網(wǎng)頁解析和提取(爬蟲主要技術(shù)點4)
使用Java寫爬蟲,常見的網(wǎng)頁解析和提取方法有兩種:利用開源Jar包Jsoup和正則。一般來說,Jsoup就可以解決問題,極少出現(xiàn)Jsoup不能解析和提取的情況。Jsoup強大功能,使得解析和提取異常簡單。知乎爬蟲采用的就是Jsoup。
正則匹配與提取(爬蟲主要技術(shù)點5)
雖然知乎爬蟲采用Jsoup來進行網(wǎng)頁解析,但是仍然封裝了正則匹配與提取數(shù)據(jù)的方法,因為正則還可以做其他的事情,如在知乎爬蟲中使用正則來進行url地址的過濾和判斷。
數(shù)據(jù)去重(爬蟲主要技術(shù)點6)
對于爬蟲,更具場景不同,可以有不同的去重方案。(1)少量數(shù)據(jù),比如幾萬或者十幾萬條的情況,使用Map或Set便可;(2)中量數(shù)據(jù),比如幾百萬或者上千萬,使用BloomFilter(著名的布隆過濾器)可以解決;(3)大量數(shù)據(jù),上億或者幾十億,Redis可以解決。知乎爬蟲給出了BloomFilter的實現(xiàn),但是采用的Redis進行去重。
除了以上爬蟲主要的技術(shù)點之外,知乎爬蟲的實現(xiàn)還涉及多種設計模式,主要有鏈模式、單例模式、組合模式等,同時還使用了Java反射。除了學習爬蟲技術(shù),這對學習設計模式和Java反射機制也是一個不錯的案例。
-
工程師
+關(guān)注
關(guān)注
59文章
1589瀏覽量
69313 -
網(wǎng)絡爬蟲
+關(guān)注
關(guān)注
1文章
52瀏覽量
8908
發(fā)布評論請先 登錄


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導體 #產(chǎn)品經(jīng)理 #軟件工程師
電子工程師自學速成——入門篇






不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
硬件工程師入門基礎元器件與電路原理

硬件工程師入門的基礎元器件知識



評論