1. 談爬蟲(chóng)工程師的價(jià)值
大數(shù)據(jù)時(shí)代已到,數(shù)據(jù)越來(lái)越具有價(jià)值了,沒(méi)有數(shù)據(jù)寸步難行,有了數(shù)據(jù)好好利用,可以在諸多領(lǐng)域干很多事,比如很火的互聯(lián)網(wǎng)金融。從互聯(lián)網(wǎng)上爬來(lái)自己想要的數(shù)據(jù),是數(shù)據(jù)的一個(gè)重要來(lái)源,而且往往是必不可少的來(lái)源。所有,目前,爬蟲(chóng)工程師是一個(gè)非常吃香的職位,工資往往都不低,就是要耐得住寂寞了。那爬蟲(chóng)工程師的價(jià)值也就是能穩(wěn)定的、高效的和實(shí)時(shí)的帶來(lái)數(shù)據(jù)。
2. 爬蟲(chóng)(或互聯(lián)網(wǎng)數(shù)據(jù)采集)怎么入門
爬蟲(chóng)可以很快的入門,但要做的真正大神,還必須不斷實(shí)踐。因?yàn)?,一旦真正爬?shù)據(jù)的時(shí)候就會(huì)出現(xiàn)各種問(wèn)題,因?yàn)榕老x(chóng)本質(zhì)是一種對(duì)抗性的工作,你需要和反爬人員斗智斗勇。不過(guò),這個(gè)過(guò)程會(huì)充滿無(wú)窮的樂(lè)趣,還會(huì)把你錘煉成真正的爬蟲(chóng)高手。
3. 專門為爬蟲(chóng)入門而寫的知乎爬蟲(chóng)
這里,耗費(fèi)了不少的業(yè)余時(shí)間,專門為爬蟲(chóng)入門寫了一個(gè)知乎爬蟲(chóng)。為什么選擇知乎呢?應(yīng)為這里例子可以盡量多的將爬蟲(chóng)涉及的技術(shù)點(diǎn)包含進(jìn)去,同時(shí)又不至于那么復(fù)雜,方便入門。下面說(shuō)明知乎爬蟲(chóng)的源碼和涉及主要技術(shù)點(diǎn):
模擬登錄(爬蟲(chóng)主要技術(shù)點(diǎn)1)
要爬去需要登錄的網(wǎng)站數(shù)據(jù),模擬登錄是必要可少的一步,而且往往是難點(diǎn)。知乎爬蟲(chóng)的模擬登錄可以做一個(gè)很好的案例。要實(shí)現(xiàn)一個(gè)網(wǎng)站的模擬登錄,需要兩大步驟是:(1)對(duì)登錄的請(qǐng)求過(guò)程進(jìn)行分析,找到登錄的關(guān)鍵請(qǐng)求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過(guò)程。
網(wǎng)頁(yè)下載(爬蟲(chóng)主要技術(shù)點(diǎn)2)
模擬登錄后,便可下載目標(biāo)網(wǎng)頁(yè)html了。知乎爬蟲(chóng)基于HttpClient寫了一個(gè)網(wǎng)絡(luò)連接線程池,并且封裝了常用的get和post兩種網(wǎng)頁(yè)下載的方法。
自動(dòng)獲取網(wǎng)頁(yè)編碼(爬蟲(chóng)主要技術(shù)點(diǎn)3)
自動(dòng)獲取網(wǎng)頁(yè)編碼是確保下載網(wǎng)頁(yè)html不出現(xiàn)亂碼的前提。知乎爬蟲(chóng)中提供方法可以解決絕大部分亂碼下載網(wǎng)頁(yè)亂碼問(wèn)題。
網(wǎng)頁(yè)解析和提取(爬蟲(chóng)主要技術(shù)點(diǎn)4)
使用Java寫爬蟲(chóng),常見(jiàn)的網(wǎng)頁(yè)解析和提取方法有兩種:利用開(kāi)源Jar包Jsoup和正則。一般來(lái)說(shuō),Jsoup就可以解決問(wèn)題,極少出現(xiàn)Jsoup不能解析和提取的情況。Jsoup強(qiáng)大功能,使得解析和提取異常簡(jiǎn)單。知乎爬蟲(chóng)采用的就是Jsoup。
正則匹配與提?。ㄅ老x(chóng)主要技術(shù)點(diǎn)5)
雖然知乎爬蟲(chóng)采用Jsoup來(lái)進(jìn)行網(wǎng)頁(yè)解析,但是仍然封裝了正則匹配與提取數(shù)據(jù)的方法,因?yàn)檎齽t還可以做其他的事情,如在知乎爬蟲(chóng)中使用正則來(lái)進(jìn)行url地址的過(guò)濾和判斷。
數(shù)據(jù)去重(爬蟲(chóng)主要技術(shù)點(diǎn)6)
對(duì)于爬蟲(chóng),更具場(chǎng)景不同,可以有不同的去重方案。(1)少量數(shù)據(jù),比如幾萬(wàn)或者十幾萬(wàn)條的情況,使用Map或Set便可;(2)中量數(shù)據(jù),比如幾百萬(wàn)或者上千萬(wàn),使用BloomFilter(著名的布隆過(guò)濾器)可以解決;(3)大量數(shù)據(jù),上億或者幾十億,Redis可以解決。知乎爬蟲(chóng)給出了BloomFilter的實(shí)現(xiàn),但是采用的Redis進(jìn)行去重。
除了以上爬蟲(chóng)主要的技術(shù)點(diǎn)之外,知乎爬蟲(chóng)的實(shí)現(xiàn)還涉及多種設(shè)計(jì)模式,主要有鏈模式、單例模式、組合模式等,同時(shí)還使用了Java反射。除了學(xué)習(xí)爬蟲(chóng)技術(shù),這對(duì)學(xué)習(xí)設(shè)計(jì)模式和Java反射機(jī)制也是一個(gè)不錯(cuò)的案例。
-
工程師
+關(guān)注
關(guān)注
59文章
1603瀏覽量
71069 -
網(wǎng)絡(luò)爬蟲(chóng)
+關(guān)注
關(guān)注
1文章
52瀏覽量
9171
發(fā)布評(píng)論請(qǐng)先 登錄
電子工程師的雙標(biāo)瞬間 #電子 #電子愛(ài)好者 #電子工程師 #揚(yáng)興科技 #雙標(biāo)
電子工程師看書(shū)的四個(gè)階段 #電子 #硬件工程師 #電子愛(ài)好者 #反轉(zhuǎn) #揚(yáng)興科技
什么是BSP工程師
硬件工程師:這才是真正的大學(xué)生就業(yè)指導(dǎo) #電子 #硬件工程師 #電子愛(ài)好者 #晶振 #揚(yáng)興科技
想成為硬件工程師?我教你?。∧愕孟葘W(xué)會(huì)這些...... #硬件工程師 #電子工程師 #電子愛(ài)好者 #電子行業(yè)
硬件工程師面試必會(huì):10個(gè)核心考點(diǎn)#硬件設(shè)計(jì) #硬件工程師 #電路設(shè)計(jì) #電路設(shè)計(jì)
硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
電子工程師自學(xué)速成——入門篇
(仰天長(zhǎng)嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師
爬蟲(chóng)工程師的價(jià)值及入門技巧
評(píng)論