一,爬蟲框架
上圖是一個簡單的網(wǎng)絡(luò)爬蟲框架圖。種子URL入手,如圖所示,經(jīng)過一步步的工作,最后將網(wǎng)頁入庫保存。當(dāng)然,勤勞的蜘蛛可能需要做更多的工作,比如:網(wǎng)頁去重以及網(wǎng)頁反作弊等。
也許,我們可以將網(wǎng)頁當(dāng)作是蜘蛛的晚餐,晚餐包括:
已下載的網(wǎng)頁。已經(jīng)被蜘蛛抓取到的網(wǎng)頁內(nèi)容,放在肚子里了。
已過期網(wǎng)頁。蜘蛛每次抓取的網(wǎng)頁很多,有一些已經(jīng)壞在肚子里了。
待下載網(wǎng)頁。看到了食物,蜘蛛就要去抓取它。
可知網(wǎng)頁。還沒被下載和發(fā)現(xiàn),但蜘蛛能夠感覺到他們,早晚會去抓取它。
不可知網(wǎng)頁?;ヂ?lián)網(wǎng)太大,很多頁面蜘蛛無法發(fā)現(xiàn),可能永遠(yuǎn)也找不到,這部份占比很高。
通過以上劃分,我們可以很清楚的理解搜索引擎蜘蛛的工作及面臨的挑戰(zhàn)。大多數(shù)蜘蛛是按照這樣的框架去爬行。但也不完全一定,凡事總有特殊,根據(jù)職能的不同,蜘蛛系統(tǒng)存在一些差異。
二,爬蟲類型
1,批量型蜘蛛。
這類蜘蛛有明確的抓取范圍和目標(biāo),當(dāng)蜘蛛完成目標(biāo)和任務(wù)后就停止抓取。具體目標(biāo)是什么?可能是抓取網(wǎng)頁數(shù)量,網(wǎng)頁大小,抓取時間等。
2,增量型蜘蛛
這類蜘蛛和批量型蜘蛛不同,他們會持續(xù)不斷的抓取,對于抓取到的網(wǎng)頁會定期抓取更新。因?yàn)榛ヂ?lián)網(wǎng)中的網(wǎng)頁是隨時處于更新狀態(tài)中,增量型蜘蛛需要能夠反映出這種更新。
3,垂直性蜘蛛
這種蜘蛛只關(guān)注特定主題或者特定的行業(yè)網(wǎng)頁。以健康網(wǎng)站為例子,這類專門的蜘蛛會只抓取健康相關(guān)主題,其它主題內(nèi)容的網(wǎng)頁則不抓取??简?yàn)這只蜘蛛的難點(diǎn)是如何去更精準(zhǔn)的識別內(nèi)容所屬于行業(yè)。目前來看,很多垂直類行業(yè)網(wǎng)站是需要這種蜘蛛去抓取的。
三,抓取策略
蜘蛛通過種子URL進(jìn)行爬行拓展,列出大量待抓取URL。但是待抓取URL數(shù)量龐大,蜘蛛如何確定抓取順序先后呢?蜘蛛抓取的策略有很多種,但最終目的是一 個:優(yōu)先抓取重要的網(wǎng)頁。評價頁面是否重要,蜘蛛會根據(jù)頁面內(nèi)容原創(chuàng)程度,鏈接權(quán)重分析等眾多方式來進(jìn)行計(jì)算。比較有代表性的抓取策略如下:
1,寬度優(yōu)先策略
寬度優(yōu)先是指:蜘蛛在抓取一個網(wǎng)頁后,繼續(xù)將該網(wǎng)頁所包含的其它頁面按順序進(jìn)行進(jìn)一步抓取。這種思想看似簡單,其實(shí)卻很實(shí)用。因?yàn)榇蠖鄶?shù)網(wǎng)頁都是按優(yōu)先級進(jìn)行排序,重要的頁面會優(yōu)先在頁面上進(jìn)行推薦。
2,PageRank策略
PageRank是一種非常著名的鏈接分析方法,主要是用來衡量網(wǎng)頁權(quán)重。如谷歌的PR,就是典型的PageRank算法。通過PageRank算法我們可以找出哪些頁面是更重要的,然后蜘蛛優(yōu)先去抓取這些重要性的頁面。
3,大站優(yōu)先策略
這個很容易理解,大網(wǎng)站通常擁有更多的內(nèi)容頁面,并且質(zhì)量也會更高。蜘蛛會先分析網(wǎng)站歸類與屬性。如果這個網(wǎng)站已經(jīng)收錄很多,或者在搜索引擎系統(tǒng)中權(quán)重很高,則優(yōu)先考慮收錄。
四,網(wǎng)頁更新
互聯(lián)網(wǎng)中的頁面大多會保持更新,這樣就要求蜘蛛所存儲的頁面也能及時更新,保持一致性。打個比喻:一個網(wǎng)頁之前排名很好,如果頁面已經(jīng)被刪,卻還有排名,那 體驗(yàn)就很不好。因此搜索引擎需要隨時了解這些并更新頁面,將最新的頁面提供給用戶。常用的網(wǎng)頁更新策略在三種:歷史參考策略,用戶體驗(yàn)策略。聚類抽樣策 略。
1,歷史參考策略
這是建立在一種假設(shè)基礎(chǔ)上的更新策略。比如,若你的網(wǎng)頁之前按規(guī)律一直更新,那搜索引擎也認(rèn)為你的頁面將來也會經(jīng)常更新,蜘蛛也會按這個規(guī)律定期來網(wǎng)站進(jìn)行抓取網(wǎng)頁。這也是為什么點(diǎn)水一直強(qiáng)調(diào)網(wǎng)站內(nèi)容需要有規(guī)律更新的原因。
2,用戶體驗(yàn)策略
一般來說,用戶只會查看搜索結(jié)果前三頁的內(nèi)容,后面的頁面很少有人去看。用戶體驗(yàn)策略就是搜索引擎根據(jù)用戶的這個特點(diǎn)來進(jìn)行更新。例如,一個網(wǎng)頁可能發(fā)布時 間較早,一段時間沒更新,但是用戶依然覺得有用,點(diǎn)擊瀏覽它,那么搜索引擎先不去更新這些過時的網(wǎng)頁也是可以的。這就是為什么搜索結(jié)果中,并不一定最新的 頁面排名一定靠前的原因。排名更多的是取決于這個頁面的質(zhì)量,而完全不是更新時間先后。
3,聚類抽樣策略
上兩種更新策略主要是參考了網(wǎng)頁的歷史信息。但存儲大量歷史信息對搜索引擎來說是一種負(fù)擔(dān),另外如果收錄的是新網(wǎng)頁則是沒有歷史信息可以參考的,那怎么辦? 聚類抽樣策略是指:根據(jù)網(wǎng)頁所展現(xiàn)出來的一些屬性,來將很多相似網(wǎng)頁進(jìn)行歸類,被歸類的頁面按照相同的規(guī)律去進(jìn)行更新。
從了解搜索引擎蜘 蛛工作原理的過程中,我們會知道:網(wǎng)站內(nèi)容之間的相關(guān)性,網(wǎng)站與網(wǎng)頁內(nèi)容更新規(guī)律,網(wǎng)頁上鏈接分布以及網(wǎng)站權(quán)重高低等因素都會影響到蜘蛛的抓取效率。知已 知彼,讓蜘蛛來得更猛烈些吧!