亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

網(wǎng)絡(luò )爬蟲(chóng)基本原理解讀

優(yōu)采云 發(fā)布時(shí)間: 2020-05-28 08:01

  

  “ 只推薦有價(jià)值的技術(shù)性文章優(yōu)才學(xué)院

  網(wǎng)絡(luò )爬蟲(chóng)是索引擎抓取系統的重要組成部份。爬蟲(chóng)的主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁(yè)下載到本地產(chǎn)生一個(gè)或聯(lián)網(wǎng)內容的鏡像備份。這篇博客主要對爬蟲(chóng)以及抓取系統進(jìn)行一個(gè)簡(jiǎn)單的概述。

  一、網(wǎng)絡(luò )爬蟲(chóng)的基本結構及工作流程

  一個(gè)通用的網(wǎng)路爬蟲(chóng)的框架如圖所示:

  網(wǎng)絡(luò )爬蟲(chóng)的基本工作流程如下:

  1.首先選定一部分悉心選購的*敏*感*詞*URL;

  2.將這種URL倒入待抓取URL隊列;

  3.從待抓取URL隊列中取出待抓取在URL,解析DNS,并且得到主機的ip,并將URL對應的網(wǎng)頁(yè)下載出來(lái),存儲進(jìn)已下載網(wǎng)頁(yè)庫中。此外,將這種URL放進(jìn)已抓取URL隊列。

  4.分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL倒入待抓取URL隊列,從而步入下一個(gè)循環(huán)。

  二、從爬蟲(chóng)的角度對互聯(lián)網(wǎng)進(jìn)行界定

  對應的,可以將互聯(lián)網(wǎng)的所有頁(yè)面分為五個(gè)部份:

  1.已下載未過(guò)期網(wǎng)頁(yè)

  2.已下載已過(guò)期網(wǎng)頁(yè):抓取到的網(wǎng)頁(yè)實(shí)際上是互聯(lián)網(wǎng)內容的一個(gè)鏡像與備份,互聯(lián)網(wǎng)是動(dòng)態(tài)變化的,一部分互聯(lián)網(wǎng)上的內容早已發(fā)生了變化,這時(shí),這部份抓取到的網(wǎng)頁(yè)就早已過(guò)期了。

  3.待下載網(wǎng)頁(yè):也就是待抓取URL隊列中的這些頁(yè)面

  4.可知網(wǎng)頁(yè):還沒(méi)有抓取出來(lái),也沒(méi)有在待抓取URL隊列中,但是可以通過(guò)對已抓取頁(yè)面或則待抓取URL對應頁(yè)面進(jìn)行剖析獲取到的URL,認為是可知網(wǎng)頁(yè)。

  5.還有一部分網(wǎng)頁(yè),爬蟲(chóng)是難以直接抓取下載的。稱(chēng)為不可知網(wǎng)頁(yè)。

  三、抓取策略

  在爬蟲(chóng)系統中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什么樣的次序排列也是一個(gè)很重要的問(wèn)題,因為這涉及到先抓取那種頁(yè)面,后抓取那個(gè)頁(yè)面。而決定那些URL排列次序的方式,叫做抓取策略。下面重點(diǎn)介紹幾種常見(jiàn)的抓取策略:

  1.深度優(yōu)先遍歷策略

  深度優(yōu)先遍歷策略是指網(wǎng)絡(luò )爬蟲(chóng)會(huì )從起始頁(yè)開(kāi)始,一個(gè)鏈接一個(gè)鏈接跟蹤下去,處理完這條線(xiàn)路以后再轉到下一個(gè)起始頁(yè),繼續跟蹤鏈接。我們以下面的圖為例:

  遍歷的路徑:A-F-G E-H-I B C D

  2.寬度優(yōu)先遍歷策略

  寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁(yè)中發(fā)覺(jué)的鏈接直接插入待抓取URL隊列的末尾。也就是指網(wǎng)絡(luò )爬蟲(chóng)會(huì )先抓取起始網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè),然后再選擇其中的一個(gè)鏈接網(wǎng)頁(yè),繼續抓取在此網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè)。還是以里面的圖為例:

  遍歷路徑:A-B-C-D-E-F G H I

  3.反向鏈接數策略

  反向鏈接數是指一個(gè)網(wǎng)頁(yè)被其他網(wǎng)頁(yè)鏈接指向的數目。反向鏈接數表示的是一個(gè)網(wǎng)頁(yè)的內容遭到其他人的推薦的程度。因此,很多時(shí)侯搜索引擎的抓取系統會(huì )使用這個(gè)指標來(lái)評價(jià)網(wǎng)頁(yè)的重要程度,從而決定不同網(wǎng)頁(yè)的抓取先后次序。

  在真實(shí)的網(wǎng)路環(huán)境中,由于廣告鏈接、作弊鏈接的存在,反向鏈接數不能完全等他我那種也的重要程度。因此,搜索引擎常??紤]一些可靠的反向鏈接數。

  4.Partial PageRank策略

  Partial PageRank算法借鑒了PageRank算法的思想:對于早已下載的網(wǎng)頁(yè),連同待抓取URL隊列中的URL,形成網(wǎng)頁(yè)集合,計算每位頁(yè)面的PageRank值,計算完以后,將待抓取URL隊列中的URL根據PageRank值的大小排列,并根據該次序抓取頁(yè)面。

  如果每次抓取一個(gè)頁(yè)面,就重新估算PageRank值,一種折中方案是:每抓取K個(gè)頁(yè)面后,重新估算一次PageRank值。但是此類(lèi)情況都會(huì )有一個(gè)問(wèn)題:對于早已下載出來(lái)的頁(yè)面中剖析出的鏈接,也就是我們之前談到的未知網(wǎng)頁(yè)那一部分,暫時(shí)是沒(méi)有PageRank值的。為了解決這個(gè)問(wèn)題,會(huì )給那些頁(yè)面一個(gè)臨時(shí)的PageRank值:將這個(gè)網(wǎng)頁(yè)所有入鏈傳遞進(jìn)來(lái)的PageRank值進(jìn)行匯總,這樣就產(chǎn)生了該未知頁(yè)面的PageRank值,從而參與排序。下面舉例說(shuō)明:

  5.OPIC策略策略

  該算法實(shí)際上也是對頁(yè)面進(jìn)行一個(gè)重要性打分。在算法開(kāi)始前,給所有頁(yè)面一個(gè)相同的初始*敏*感*詞*(cash)。當下載了某個(gè)頁(yè)面P以后,將P的*敏*感*詞*平攤給所有從P中剖析出的鏈接,并且將P的*敏*感*詞*清空。對于待抓取URL隊列中的所有頁(yè)面根據*敏*感*詞*數進(jìn)行排序。

  6.大站優(yōu)先策略

  對于待抓取URL隊列中的所有網(wǎng)頁(yè),根據所屬的網(wǎng)站進(jìn)行分類(lèi)。對于待下載頁(yè)面數多的網(wǎng)站,優(yōu)先下載。這個(gè)策略也因而稱(chēng)作大站優(yōu)先策略。

  四、更新策略

  互聯(lián)網(wǎng)是實(shí)時(shí)變化的,具有太強的動(dòng)態(tài)性。網(wǎng)頁(yè)更新策略主要是決定何時(shí)更新之前早已下載過(guò)的頁(yè)面。常見(jiàn)的更新策略又以下三種:

  1.歷史參考策略

  顧名思義,根據頁(yè)面往年的歷史更新數據,預測該頁(yè)面未來(lái)何時(shí)會(huì )發(fā)生變化。一般來(lái)說(shuō),是通過(guò)泊松過(guò)程進(jìn)行建模進(jìn)行預測。

  2.用戶(hù)體驗策略

  盡管搜索引擎針對于某個(gè)查詢(xún)條件才能返回數目巨大的結果,但是用戶(hù)常常只關(guān)注前幾頁(yè)結果。因此,抓取系統可以?xún)?yōu)先更新這些現實(shí)在查詢(xún)結果前幾頁(yè)中的網(wǎng)頁(yè),而后再更新這些旁邊的網(wǎng)頁(yè)。這種更新策略也是須要用到歷史信息的。用戶(hù)體驗策略保留網(wǎng)頁(yè)的多個(gè)歷史版本,并且依照過(guò)去每次內容變化對搜索質(zhì)量的影響,得出一個(gè)平均值,用這個(gè)值作為決定何時(shí)重新抓取的根據。

  3.降維抽樣策略

  前面提及的兩種更新策略都有一個(gè)前提:需要網(wǎng)頁(yè)的歷史信息。這樣就存在兩個(gè)問(wèn)題:第一網(wǎng)絡(luò )爬蟲(chóng)原理,系統要是為每位系統保存多個(gè)版本的歷史信息,無(wú)疑降低了好多的系統負擔;第二,要是新的網(wǎng)頁(yè)完全沒(méi)有歷史信息網(wǎng)絡(luò )爬蟲(chóng)原理,就難以確定更新策略。

  這種策略覺(jué)得,網(wǎng)頁(yè)具有好多屬性,類(lèi)似屬性的網(wǎng)頁(yè),可以覺(jué)得其更新頻度也是類(lèi)似的。要估算某一個(gè)類(lèi)別網(wǎng)頁(yè)的更新頻度,只須要對這一類(lèi)網(wǎng)頁(yè)抽樣,以她們的更新周期作為整個(gè)類(lèi)別的更新周期?;舅悸啡鐖D:

  五、分布式抓取系統結構

  一般來(lái)說(shuō),抓取系統須要面對的是整個(gè)互聯(lián)網(wǎng)上數以?xún)|計的網(wǎng)頁(yè)。單個(gè)抓取程序不可能完成這樣的任務(wù)。往往須要多個(gè)抓取程序一起來(lái)處理。一般來(lái)說(shuō)抓取系統常常是一個(gè)分布式的三層結構。如圖所示:

  最下一層是分布在不同地理位置的數據中心,在每位數據中心里有若干臺抓取服務(wù)器,而每臺抓取服務(wù)器上可能布署了若干套爬蟲(chóng)程序。這就構成了一個(gè)基本的分布式抓取系統。

  對于一個(gè)數據中心內的不同抓去服務(wù)器,協(xié)同工作的方法有幾種:

  1.主從式(Master-Slave)

  主從式基本結構如圖所示:

  對于主從式而言,有一臺專(zhuān)門(mén)的Master服務(wù)器來(lái)維護待抓取URL隊列,它負責每次將URL分發(fā)到不同的Slave服務(wù)器,而Slave服務(wù)器則負責實(shí)際的網(wǎng)頁(yè)下載工作。Master服務(wù)器不僅維護待抓取URL隊列以及分發(fā)URL之外,還要負責調處各個(gè)Slave服務(wù)器的負載情況。以免個(gè)別Slave服務(wù)器過(guò)分悠閑或則操勞。

  這種模式下,Master常常容易成為系統困局。

  2.對方程(Peer to Peer)

  對等式的基本結構如圖所示:

  在這些模式下,所有的抓取服務(wù)器在分工上沒(méi)有不同。每一臺抓取服務(wù)器都可以從待抓取在URL隊列中獲取URL,然后對該URL的主域名的hash值H,然后估算H mod m(其中m是服務(wù)器的數目,以上圖為例,m為3),計算得到的數就是處理該URL的主機編號。

  舉例:假設對于URL ,計算器hash值H=8,m=3,則H mod m=2,因此由編號為2的服務(wù)器進(jìn)行該鏈接的抓取。假設這時(shí)候是0號服務(wù)器領(lǐng)到這個(gè)URL,那么它將該URL轉給服務(wù)器2,由服務(wù)器2進(jìn)行抓取。

  這種模式有一個(gè)問(wèn)題,當有一臺服務(wù)器關(guān)機或則添加新的服務(wù)器,那么所有URL的哈希求余的結果就都要變化。也就是說(shuō),這種方法的擴展性不佳。針對這些情況,又有一種改進(jìn)方案被提下來(lái)。這種改進(jìn)的方案是一致性哈希法來(lái)確定服務(wù)器分工。其基本結構如圖所示:

  一致性哈希將URL的主域名進(jìn)行哈希運算,映射為一個(gè)范圍在0-232之間的某個(gè)數。而將這個(gè)范圍平均的分配給m臺服務(wù)器,根據URL主域名哈希運算的值所處的范圍判定是哪臺服務(wù)器來(lái)進(jìn)行抓取。

  如果某一臺服務(wù)器出現問(wèn)題,那么本該由該服務(wù)器負責的網(wǎng)頁(yè)則根據順時(shí)針延后,由下一臺服務(wù)器進(jìn)行抓取。這樣的話(huà),及時(shí)某臺服務(wù)器出現問(wèn)題,也不會(huì )影響其他的工作。

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久