近兩年隨著大數(shù)據(jù)的興起啊楚,爬蟲一行,也逐漸進(jìn)入了大眾的視野浑彰。?
而我這個(gè)初出茅廬的菜鳥恭理,也因?yàn)橐幌盗械钠鹪辞珊希霓D(zhuǎn)變成了一個(gè)專門從事于爬蟲行業(yè)的一份子闸昨。
我在這里呢蚯斯,也就是簡單說一下,我對爬蟲的理解饵较,歡迎各位大佬拍磚拍嵌!
爬蟲:
? ? ? ? 網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人循诉,在FOAF社區(qū)中間横辆,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則茄猫,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本狈蚤。另外一些不常使用的名字還有螞蟻、自動(dòng)索引划纽、模擬程序或者蠕蟲脆侮。? ? ? ? ? ? ? ? ? ? ? ? ? ? ---摘自百度百科
在我的理解中,他就是一個(gè)模擬網(wǎng)絡(luò)協(xié)議勇劣,模擬人工行為的一種程序靖避。 作用是潭枣,數(shù)據(jù)采集。以便于大數(shù)據(jù)等等等等的統(tǒng)計(jì)分析幻捏。
爬蟲的分類:? ?
通用網(wǎng)絡(luò)爬蟲(General Purpose Web Crawler)盆犁、聚焦網(wǎng)絡(luò)爬蟲(Focused Web Crawler)、增量式網(wǎng)絡(luò)爬蟲(Incremental Web Crawler)篡九、深層網(wǎng)絡(luò)爬蟲(Deep Web Crawler)谐岁。? ? --摘自百度百科
? ? 在我的理解中,他如果從本質(zhì)上區(qū)分的話榛臼,分為 兩種伊佃,一種是增量式的爬蟲,適合爬取全站讽坏。 一種是 通用式的锭魔,適合采集某種指定的類型的頁面。
? ? 簡單說路呜,就是迷捧,增量式的話,一進(jìn)多出胀葱。線程的數(shù)量會(huì)不聽的增加漠秋。通用式的話就是,線程數(shù)量不會(huì)增加抵屿。 只爬去指定的某些頁面庆锦,來進(jìn)行數(shù)據(jù)采集。
從構(gòu)成上來進(jìn)行區(qū)分的話轧葛,就也分為兩種搂抒,
? 一種是 通過渲染來進(jìn)行的抓取。
?一種是通過抓包來進(jìn)行的數(shù)據(jù)抓饶虺丁求晶! 兩種各有利弊吧。?
如果從功能上分的話衷笋,分為兩種芳杏,
? ?一種是作為程序內(nèi)置模塊來操作的話,是不允許有數(shù)據(jù)遺漏的辟宗,并且在反應(yīng)時(shí)間上也是具有一定的要求爵赵,是需要保證時(shí)效性,準(zhǔn)確性的泊脐。
? ?一種是作為爬蟲這個(gè)單獨(dú)的模塊來進(jìn)行衡量的空幻。 對于反應(yīng)時(shí)間,還有數(shù)據(jù)遺漏方面不能說沒有要求但是要求就會(huì)低很多容客。
貌似爬蟲是對于語言沒有什么要求的秕铛,只要你能解析數(shù)據(jù)则剃,只要你能發(fā)送請求。 這兩個(gè)就是基本條件如捅。貌似所有的語言都可以做到這個(gè)吧。 而我所知道的從事于爬蟲方向的调煎,都有 c#,java,php,python,甚至還有js的镜遣。
增量式爬蟲: 適用于爬取全站,將整個(gè)網(wǎng)站的所有的頁面都進(jìn)行一遍抓取士袄。 爬蟲內(nèi)部的url庫會(huì)不停的增加悲关。并且增加線程的數(shù)量。
通用式爬蟲: 適用于輪訓(xùn)娄柳,監(jiān)控等目的寓辱,來進(jìn)行固定數(shù)據(jù)的監(jiān)控抓取。
渲染爬蟲: 是采用渲染方式赤拒,既采用瀏覽器內(nèi)核來進(jìn)行頁面加載以及渲染的爬蟲秫筏,特點(diǎn),可以模擬鼠標(biāo)挎挖。鍵盤等行為这敬,但速度較慢。
抓包爬蟲:采用抓包的方式蕉朵,來進(jìn)行固定http協(xié)議模擬達(dá)到自己的某種需求崔涂。特點(diǎn),速度快始衅。
內(nèi)置爬蟲:既對于信息的準(zhǔn)確以及時(shí)效性要求很高冷蚂。例如,一個(gè)關(guān)鍵詞3秒內(nèi)汛闸,拿到淘寶上所有這個(gè)關(guān)鍵詞的商品信息蝙茶,用來及時(shí)的反饋給app.
普通爬蟲:監(jiān)控某類商品,或某個(gè)商品的價(jià)格變動(dòng)情況蛉拙,對于數(shù)據(jù)的要求準(zhǔn)確性就相比上面那個(gè)能低一點(diǎn)尸闸。畢竟 1年內(nèi)時(shí)時(shí)彩的情況。 在龐大的數(shù)據(jù)量的情況下孕锄,對于這些的話影響不是很大吮廉!