欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)的制作方法

文檔序號(hào):6365991閱讀:208來源:國知局
專利名稱:一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)資源搜索技術(shù),尤其涉及到一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)。
背景技術(shù)
隨著互聯(lián)網(wǎng)上信息的海量增長,傳統(tǒng)的搜索引擎面臨著索引規(guī)模、實(shí)時(shí)更新速度和個(gè)性化等許多方面的挑戰(zhàn)。因此,特定主題和個(gè)性化搜索的主題網(wǎng)絡(luò)爬蟲應(yīng)運(yùn)而生。當(dāng)前,主題網(wǎng)絡(luò)爬蟲的研究已經(jīng)成為Web信息挖掘的研究熱點(diǎn)和難點(diǎn)。傳統(tǒng)網(wǎng)絡(luò)爬蟲的目標(biāo)是盡可能地采集信息頁面,它并不關(guān)心頁面采集的順序和采集的頁面是否符合特定的主題。這樣導(dǎo)致大量的系統(tǒng)資源和網(wǎng)絡(luò)帶寬浪費(fèi)在抓取主題無關(guān)的網(wǎng)頁上。主題網(wǎng)絡(luò)爬蟲則是盡可能快地采集用戶感興趣的網(wǎng)頁。它可以對(duì)整個(gè)Web按主題分塊采集,并將不同塊的采集結(jié)果整合到一起,以提高整個(gè)Web的采集覆蓋率和頁面利用率。同時(shí),雖然主題網(wǎng)絡(luò)爬蟲能夠提高系統(tǒng)資源和網(wǎng)絡(luò)帶寬利用率,但是隨著網(wǎng)絡(luò)規(guī)模和復(fù)雜程度的指數(shù)增長,依賴計(jì)算機(jī)單機(jī)處理能力的集中式網(wǎng)絡(luò)爬蟲無法滿足快速獲取大量資源的需求。分布式網(wǎng)絡(luò)爬蟲由可并行獲取資源的多個(gè)節(jié)點(diǎn)組成,它能夠克服單一網(wǎng)絡(luò)爬蟲物理性能的瓶頸影響,極大地提高整個(gè)爬蟲系統(tǒng)的下載速度。分布式網(wǎng)絡(luò)爬蟲系統(tǒng)的爬行節(jié)點(diǎn)可以隨時(shí)加入和退出,具有極好的魯棒性和擴(kuò)展性。根據(jù)現(xiàn)有技術(shù),主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)相關(guān)定義如下
定義I :網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)獲取網(wǎng)頁的程序,它是搜索引擎從Web上下載網(wǎng)頁的重要組成部分。傳統(tǒng)網(wǎng)絡(luò)爬蟲是從一個(gè)或若干初始網(wǎng)頁的超鏈接開始,獲取初始網(wǎng)頁上的超鏈接列表;在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的超鏈接放入待爬行隊(duì)列,直到滿足系統(tǒng)的停止條件。定義2 :主題網(wǎng)絡(luò)爬蟲就是根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的超鏈接,保留主題相關(guān)的超鏈接并將其放入待抓取的超鏈接隊(duì)列中;然后根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁超鏈接,并重復(fù)上述過程,直到滿足系統(tǒng)的停止條件。定義3 :分布式網(wǎng)絡(luò)爬蟲是一個(gè)系統(tǒng),它包括多個(gè)子節(jié)點(diǎn),每個(gè)子節(jié)點(diǎn)都承擔(dān)一定的網(wǎng)頁抓取任務(wù);并且相互協(xié)作,共同完成總的抓取任務(wù)。定義4 :主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)是指一種多個(gè)節(jié)點(diǎn)協(xié)同合作的分布式網(wǎng)絡(luò)爬蟲,它根據(jù)用戶指定的主題,自動(dòng)抓取主題相關(guān)的網(wǎng)頁。但是,具體如何實(shí)現(xiàn)主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),還有很多技術(shù)問題,比如各個(gè)節(jié)點(diǎn)如何協(xié)同,本領(lǐng)域尚未出現(xiàn)解決方案。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),它能夠使多個(gè)節(jié)點(diǎn)協(xié)同合作,共同完成網(wǎng)頁抓取任務(wù),提高下載性能,使得用戶能夠獲取感興趣的網(wǎng)頁。
為了達(dá)到上述目的,本發(fā)明采用的技術(shù)方案為一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),包含一個(gè)控制節(jié)點(diǎn),多個(gè)爬行節(jié)點(diǎn),一個(gè)網(wǎng)頁數(shù)據(jù)庫,一個(gè)網(wǎng)頁分析器,一個(gè)主題鏈接存儲(chǔ)器;
所述主題鏈接存儲(chǔ)器,用于存放系統(tǒng)未完成抓取的超鏈接;
所述控制節(jié)點(diǎn),用于從主題鏈接存儲(chǔ)器中提取超鏈接,去除其中已經(jīng)被系統(tǒng)抓取過的超鏈接,然后將未被系統(tǒng)抓取過的超鏈接分配給爬行節(jié)點(diǎn),并控制是否終止系統(tǒng)運(yùn)行;所述爬行節(jié)點(diǎn),用于接收控制節(jié)點(diǎn)分配的超鏈接,然后下載超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中;
所述網(wǎng)頁數(shù)據(jù)庫,用于存放爬行節(jié)點(diǎn)抓取的網(wǎng)頁,用于網(wǎng)頁分析器作進(jìn)一步的分析;所述網(wǎng)頁分析器,用于定期從網(wǎng)頁數(shù)據(jù)庫中讀取爬行節(jié)點(diǎn)下載的最新網(wǎng)頁,對(duì)網(wǎng)頁進(jìn)行內(nèi)容分析,計(jì)算網(wǎng)頁及網(wǎng)頁內(nèi)所含超鏈接的主題相關(guān)度,然后根據(jù)主題相關(guān)度將相關(guān)的超鏈接存放到主題鏈接存儲(chǔ)器中,將每個(gè)網(wǎng)頁的主題相關(guān)度存于網(wǎng)頁數(shù)據(jù)庫中。而且,所述主題鏈接存儲(chǔ)器中設(shè)有HighQueue隊(duì)列和LowQueue隊(duì)列兩個(gè)子模塊;HighQueue隊(duì)列存儲(chǔ)主題相關(guān)度大于預(yù)設(shè)閾值T的超鏈接,LowQueue隊(duì)列存儲(chǔ)主題相關(guān)度不大于預(yù)設(shè)閾值T的超鏈接;系統(tǒng)工作流程包括以下步驟,
步驟1,用戶定義初始超鏈接集,定義主題相關(guān)的關(guān)鍵詞以及主題相關(guān)度的閾值T ;步驟2,爬蟲系統(tǒng)的控制節(jié)點(diǎn)從初始超鏈接集中提取超鏈接,然后將超鏈接分配給爬蟲系統(tǒng)的各個(gè)爬行節(jié)點(diǎn);
步驟3,爬行節(jié)點(diǎn)抓取超鏈接指定的網(wǎng)頁并且將其存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中;
步驟4,網(wǎng)頁分析器從網(wǎng)頁數(shù)據(jù)庫中讀取網(wǎng)頁,抽取網(wǎng)頁上的超鏈接,并且根據(jù)主題相關(guān)的關(guān)鍵詞進(jìn)行主題相關(guān)度計(jì)算,將主題相關(guān)度大于閾值T的超鏈接存入主題鏈接存儲(chǔ)器的HighQueue隊(duì)列中,將主題相關(guān)度不大于閾值T的超鏈接存入主題鏈接存儲(chǔ)器的LowQueue隊(duì)列中;
步驟5,控制節(jié)點(diǎn)先從主題鏈接存儲(chǔ)器的HighQueue隊(duì)列提取超鏈接,若HighQueue隊(duì)列為空就從LowQueue隊(duì)列中提取超鏈接,并且在去重后將超鏈接分配給各個(gè)爬行節(jié)點(diǎn);步驟6,重復(fù)執(zhí)行步驟3、4、5,在滿足系統(tǒng)終止條件時(shí)終止重復(fù)執(zhí)行。而且,所述控制節(jié)點(diǎn)中設(shè)有已抓取超鏈接隊(duì)列和任務(wù)分配器兩個(gè)子模塊;已抓取超鏈接隊(duì)列存儲(chǔ)有爬蟲系統(tǒng)已經(jīng)抓取過的所有超鏈接,任務(wù)分配器負(fù)責(zé)將待抓取的超鏈接分配給爬行節(jié)點(diǎn);
控制節(jié)點(diǎn)每從主題鏈接存儲(chǔ)器讀取一個(gè)超鏈接,就在已抓取超鏈接隊(duì)列中檢查它是否已經(jīng)存在,若存在,丟棄該超鏈接,否則保存該超鏈接到任務(wù)分配器和已抓取超鏈接隊(duì)列中;
控制節(jié)點(diǎn)從主題鏈接存儲(chǔ)器中讀取超鏈接的規(guī)則是,先判斷HighQueue隊(duì)列是否為空,不是則按照最高相關(guān)度優(yōu)先的方式依次從HighQueue隊(duì)列中提取超鏈接;如果HighQueue隊(duì)列為空,控制節(jié)點(diǎn)就按照先來先到的方式從LowQueue隊(duì)列中提取超鏈接;控制節(jié)點(diǎn)控制系統(tǒng)終止的條件是,已抓取網(wǎng)頁數(shù)量超過了用戶定義的上限,預(yù)先在步驟I中定義網(wǎng)頁下載數(shù)量的上限;或者HighQueue隊(duì)列連續(xù)為空時(shí)間超過預(yù)設(shè)的時(shí)間閾值PD。而且,所述爬行節(jié)點(diǎn)中設(shè)有任務(wù)申請(qǐng)器和網(wǎng)頁下載器兩個(gè)子模塊;當(dāng)爬行節(jié)點(diǎn)空、閑時(shí),任務(wù)申請(qǐng)器向控制節(jié)點(diǎn)申請(qǐng)一定數(shù)量的下載任務(wù),控制節(jié)點(diǎn)將超鏈接分配給各個(gè)爬行節(jié)點(diǎn)時(shí),按照該爬行節(jié)點(diǎn)申請(qǐng)的數(shù)量發(fā)送超鏈接;網(wǎng)頁下載器用于下載控制節(jié)點(diǎn)發(fā)送過來的超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁保存到網(wǎng)頁數(shù)據(jù)庫中。而且,所述網(wǎng)頁分析器包括內(nèi)容抽取器和主題相關(guān)度計(jì)算器兩個(gè)子模塊;內(nèi)容抽取器通過正則表達(dá)式提取網(wǎng)頁的標(biāo)題部分、內(nèi)容描述部分、關(guān)鍵詞描述部分、正文部分及超鏈接部分;主題相關(guān)度計(jì)算器根據(jù) 內(nèi)容抽取器的提取結(jié)果計(jì)算主題相關(guān)度,然后將主題相關(guān)度大于預(yù)設(shè)閾值T的超鏈接存放于主題鏈接存儲(chǔ)器中的HighQueue隊(duì)列中,將不大于預(yù)設(shè)閾值T的超鏈接存放于主題鏈接存儲(chǔ)器的LowQueue隊(duì)列中。而且,主題相關(guān)度計(jì)算器根據(jù)內(nèi)容抽取器的提取結(jié)果計(jì)算主題相關(guān)度,具體實(shí)現(xiàn)如下,
(1)根據(jù)網(wǎng)頁A中關(guān)鍵詞的位置與數(shù)量計(jì)算網(wǎng)頁A的主題相關(guān)度,結(jié)果記為R(A1),步驟如下,
讀取網(wǎng)頁A的標(biāo)題部分、內(nèi)容描述部分、關(guān)鍵詞描述部分和正文部分;
計(jì)算這4個(gè)部分各自的主題相關(guān)度,計(jì)算方法為,標(biāo)題部分、內(nèi)容描述部分或關(guān)鍵詞描述部分只要含有關(guān)鍵詞,相應(yīng)的主題相關(guān)度等于1,否則為O ;而正文部分的主題相關(guān)度用其包含的關(guān)鍵詞數(shù)量的高斯函數(shù)模擬;
最后將這4個(gè)部分的主題相關(guān)度乘以各自的預(yù)設(shè)權(quán)重然后相加,得到網(wǎng)頁A的主題相關(guān)度;
(2)根據(jù)網(wǎng)頁A上指向已下載的主題相關(guān)度大于T的網(wǎng)頁的超鏈接數(shù)量及這些網(wǎng)頁的主題相關(guān)度計(jì)算網(wǎng)頁A的主題相關(guān)度,結(jié)果記為R(A2);
(3)主題相關(guān)度計(jì)算器根據(jù)鏈向網(wǎng)頁A的主題網(wǎng)頁的數(shù)量和主題相關(guān)度計(jì)算網(wǎng)頁A的主題相關(guān)度,結(jié)果記為R(A3);
(4)網(wǎng)頁A的主題相關(guān)度R㈧取R(A1),R(A2),R(A3)中的最大值。本發(fā)明設(shè)計(jì)的主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),設(shè)計(jì)了控制節(jié)點(diǎn)和主題鏈接存儲(chǔ)器,配合網(wǎng)頁數(shù)據(jù)庫和網(wǎng)頁分析器,能夠利用網(wǎng)絡(luò)中的多個(gè)爬行節(jié)點(diǎn)高效準(zhǔn)確地自動(dòng)抓取主題相關(guān)的網(wǎng)頁。本發(fā)明還在主題鏈接存儲(chǔ)器中設(shè)置了 HighQueue隊(duì)列與LowQueue隊(duì)列,HighQueue隊(duì)列存儲(chǔ)主題相關(guān)度大于特定閾值T的超鏈接,LowQueue隊(duì)列存儲(chǔ)主題相關(guān)度不大于T的超鏈接??刂乒?jié)點(diǎn)先從主題鏈接存儲(chǔ)器的HighQueue隊(duì)列提取超鏈接,若HighQueue隊(duì)列為空就從LowQueue隊(duì)列中提取超鏈接,并且在去重后將超鏈接分配給各個(gè)爬行節(jié)點(diǎn),這樣可以保證檢索結(jié)果的高相關(guān)性。


圖I為本發(fā)明實(shí)施例的系統(tǒng)架構(gòu);
圖2為本發(fā)明實(shí)施例的系統(tǒng)工作流程 圖3為本發(fā)明實(shí)施例的內(nèi)容抽取器工作流程流程具體實(shí)施例方式 以下結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明技術(shù)方案。如圖I所示,本發(fā)明實(shí)施例所提供主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)包括5個(gè)大的模塊控制節(jié)點(diǎn),爬行節(jié)點(diǎn),網(wǎng)頁數(shù)據(jù)庫,網(wǎng)頁分析器,主題鏈接存儲(chǔ)器。為了提供更有效率的工作,本發(fā)明進(jìn)一步設(shè)計(jì)其中控制節(jié)點(diǎn)包括已抓取超鏈接隊(duì)列和任務(wù)分配器兩個(gè)子模塊,爬行節(jié)點(diǎn)包括任務(wù)申請(qǐng)器和網(wǎng)頁下載器兩個(gè)子模塊,網(wǎng)頁分析器包括內(nèi)容抽取器和主題相關(guān)度計(jì)算器兩個(gè)子模塊,主題鏈接存儲(chǔ)器包括HighQueue隊(duì)列和LowQueue隊(duì)列兩個(gè)子模塊。實(shí)施例的各部分詳細(xì)實(shí)現(xiàn)說明如下
主題鏈接存儲(chǔ)器用來存放系統(tǒng)未完成抓取的超鏈接。實(shí)施例在主題鏈接存儲(chǔ)器中設(shè)置了兩個(gè)隊(duì)列,HighQueue隊(duì)列與LowQueue隊(duì)列。HighQueue隊(duì)列存儲(chǔ)主題相關(guān)度大于特定閾值T的超鏈接,LowQueue隊(duì)列存儲(chǔ)主題相關(guān)度不大于T的超鏈接。預(yù)設(shè)閾值T由用戶指定。控制節(jié)點(diǎn)控制節(jié)點(diǎn)從主題鏈接存儲(chǔ)器中提 取超鏈接,去除其中已經(jīng)被系統(tǒng)抓取過的超鏈接,然后將未被系統(tǒng)抓取過的超鏈接分配給爬行節(jié)點(diǎn)??刂乒?jié)點(diǎn)還負(fù)責(zé)控制是否終止系統(tǒng)運(yùn)行。實(shí)施例的控制節(jié)點(diǎn)包括兩個(gè)部分已抓取超鏈接隊(duì)列和任務(wù)分配器。已抓取超鏈接隊(duì)列存儲(chǔ)有爬蟲系統(tǒng)已經(jīng)抓取過的所有超鏈接,負(fù)責(zé)將待抓取的超鏈接分配給爬行節(jié)點(diǎn)。控制節(jié)點(diǎn)每從主題鏈接存儲(chǔ)器讀取一個(gè)超鏈接,就會(huì)在已抓取超鏈接隊(duì)列中檢查它是否已經(jīng)存在,若存在,丟棄該超鏈接,否則保存該超鏈接到任務(wù)分配器中。由于本發(fā)明提出,可以由爬行節(jié)點(diǎn)主動(dòng)根據(jù)自身資源情況和任務(wù)完成情況,主動(dòng)提出任務(wù)請(qǐng)求。可在爬行節(jié)點(diǎn)的任務(wù)申請(qǐng)器向控制節(jié)點(diǎn)申請(qǐng)一定數(shù)量的下載任務(wù)時(shí),由任務(wù)分配器則負(fù)責(zé)接收爬行節(jié)點(diǎn)的任務(wù)請(qǐng)求,并且按照該爬行節(jié)點(diǎn)申請(qǐng)的數(shù)量發(fā)送超鏈接。同時(shí)為了便于統(tǒng)計(jì)已抓取鏈接的數(shù)量,任務(wù)分配器將這些超鏈接保存該鏈接到已抓取超鏈接隊(duì)列。控制節(jié)點(diǎn)從主題鏈接存儲(chǔ)器中提取超鏈接的規(guī)則是先按照最高相關(guān)度優(yōu)先的方式依次從HighQueue隊(duì)列中提取超鏈接,即每次提取出HighQueue隊(duì)列中主題相關(guān)度最高的鏈接;如果HighQueue隊(duì)列為空,控制節(jié)點(diǎn)就按照先來先到的方式從LowQueue隊(duì)列中提取超鏈接。即提取順序是按照超鏈接存儲(chǔ)到LowQueue隊(duì)列中的先后順序提取。這樣保證了爬蟲系統(tǒng)優(yōu)先抓取主題相關(guān)度較高的鏈接,同時(shí)在一定程度上避免了主題相關(guān)度較低的鏈接出現(xiàn)饑餓。實(shí)施例中,控制節(jié)點(diǎn)中的已抓取超鏈接隊(duì)列采用哈希鏈表結(jié)構(gòu),加快了查詢速度。爬行節(jié)點(diǎn)爬行節(jié)點(diǎn)可有多個(gè)。爬行節(jié)點(diǎn)接收控制節(jié)點(diǎn)分配的超鏈接,然后下載其標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中。實(shí)施例的爬行節(jié)點(diǎn)包括兩個(gè)部分任務(wù)申請(qǐng)器和網(wǎng)頁下載器。當(dāng)爬行節(jié)點(diǎn)空閑時(shí),任務(wù)申請(qǐng)器就會(huì)向控制節(jié)點(diǎn)申請(qǐng)一定數(shù)量的下載任務(wù);控制節(jié)點(diǎn)將超鏈接分配給各個(gè)爬行節(jié)點(diǎn)時(shí),可以按照該爬行節(jié)點(diǎn)申請(qǐng)的數(shù)量發(fā)送超鏈接。網(wǎng)頁下載器用于下載控制節(jié)點(diǎn)發(fā)送過來的超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁保存在網(wǎng)頁數(shù)據(jù)庫中。爬行節(jié)點(diǎn)的網(wǎng)頁下載器可采用多線程模式。多線程模式是指網(wǎng)頁下載器能夠并行下載多個(gè)超鏈接標(biāo)識(shí)的網(wǎng)頁,大大提高了下載速率。網(wǎng)頁數(shù)據(jù)庫存放爬行節(jié)點(diǎn)抓取的網(wǎng)頁,用于網(wǎng)頁分析器作進(jìn)一步的分析。網(wǎng)頁分析器網(wǎng)頁分析器定期從網(wǎng)頁數(shù)據(jù)庫中讀取爬行節(jié)點(diǎn)下載的最新網(wǎng)頁,對(duì)網(wǎng)頁進(jìn)行內(nèi)容分析,計(jì)算網(wǎng)頁及其中所含超鏈接的主題相關(guān)度。然后將主題相關(guān)度大于閾值T的超鏈接存放于主題鏈接存儲(chǔ)器中的HighQueue隊(duì)列中,將不大于閾值T的超鏈接存放于主題鏈接存儲(chǔ)器的LowQueue隊(duì)列中。同時(shí),也可將每個(gè)網(wǎng)頁的主題相關(guān)度存于網(wǎng)頁數(shù)據(jù)庫中,以便后續(xù)使用。實(shí)施例的網(wǎng)頁分析器包括兩個(gè)部分內(nèi)容抽取器和主題相關(guān)度計(jì)算器。內(nèi)容抽取器通過正則表達(dá)式處理網(wǎng)頁的標(biāo)題、內(nèi)容描述部分、關(guān)鍵詞描述部分、網(wǎng)頁標(biāo)記部分、正文部分。如圖3所示,先提取網(wǎng)頁的標(biāo)題部分、內(nèi)容描述部分、關(guān)鍵詞描述部分、超鏈接部分;然后去除CSS (級(jí)聯(lián)樣式表)、JavaScript (網(wǎng)頁程式設(shè)計(jì)語言)、注釋部分,取出網(wǎng)頁的正文部分。正則表達(dá)式是指根據(jù)一定模式提取字符串特定位置的內(nèi)容。標(biāo)題是位于網(wǎng)頁標(biāo)簽〈title〉、〈/title〉之間的內(nèi)容,內(nèi)容描述部分是位于網(wǎng)頁<meta>標(biāo)簽” name=description”之后的內(nèi)容,關(guān)鍵詞描述部分是位于網(wǎng)頁<meta>標(biāo)簽”name=keywords”之后的內(nèi)容,正文部分是網(wǎng)頁<body>〈/body>除去標(biāo)記之間的內(nèi)容,超鏈接是網(wǎng)頁錨標(biāo)簽”a href=”之后的內(nèi)容。這些是已有技術(shù),這里不贅述。具體實(shí)施時(shí),爬行節(jié)點(diǎn)可以利用網(wǎng)絡(luò)中的客戶端,例如PC;控制節(jié)點(diǎn)、網(wǎng)頁數(shù)據(jù)庫、網(wǎng)頁分析器和主題鏈接存儲(chǔ)器可以利用服務(wù)器實(shí)現(xiàn),例如Web服務(wù)器。爬行節(jié)點(diǎn)、控制節(jié)點(diǎn)、網(wǎng)頁數(shù)據(jù)庫、網(wǎng)頁分析器和主題鏈接存儲(chǔ)器之間的連接都是通過網(wǎng)絡(luò)通信完成的。其中的子模塊可以由本領(lǐng)域技術(shù)人員采用計(jì)算機(jī)軟件模塊化技術(shù)實(shí)現(xiàn)。爬行節(jié)點(diǎn)中的兩個(gè)子模塊任務(wù)申請(qǐng)器和網(wǎng)頁下載器是運(yùn)行在客戶端上的兩個(gè)子程序,二者之間的連接通過進(jìn)程通信來實(shí)現(xiàn);控制節(jié)點(diǎn)中的兩個(gè)子模塊已抓取超鏈接隊(duì)列和任務(wù)分配器是運(yùn)行在服務(wù)器上的兩個(gè)子程序,二者之間的連接通過進(jìn)程通信來實(shí)現(xiàn);網(wǎng)頁分析器中的兩個(gè)子模塊內(nèi)容抽取器和主題相關(guān)度計(jì)算器也是運(yùn)行在服務(wù)器上的兩個(gè)子程序,二者之間的連接通過進(jìn)程通信來實(shí)現(xiàn);主題鏈接存儲(chǔ)器的兩個(gè)子模塊HighQueue和Iowqueue也是運(yùn)行在服務(wù)器上的兩個(gè)子程序,二者之間的連接通過進(jìn)程通信來實(shí)現(xiàn)。具體實(shí)現(xiàn)屬于現(xiàn)有軟件技術(shù),本發(fā)明不予贅述。在實(shí)施例中,主題相關(guān)度的上限和下限分別設(shè)為I和0,超鏈接的主題相關(guān)度等于所屬網(wǎng)頁的主題相關(guān)度。為便于實(shí)施參考起見,本發(fā)明提出,可以采用三種方法之一計(jì)算網(wǎng)頁主題相關(guān)度。方法I:根據(jù)網(wǎng)頁A中的關(guān)鍵詞的位置和數(shù)量來計(jì)算網(wǎng)頁A的主題相關(guān)度。對(duì)于某個(gè)網(wǎng)頁A,其主題相關(guān)度計(jì)算公式如下
及(A1) =we*Pm 1 * * w關(guān)*p關(guān)(I)
=1
其中j ^(2)
W關(guān) > ,
其中R(A1)是根據(jù)方法I得到的網(wǎng)頁A的主題相關(guān)度。是一組權(quán)值,表示網(wǎng)頁標(biāo)題部分,網(wǎng)頁內(nèi)容描述部分,網(wǎng)頁關(guān)鍵詞部分,網(wǎng)頁正文部分各自含有關(guān)鍵詞時(shí),對(duì)網(wǎng)頁總體主題相關(guān)度的影響因子。Pg、Ρ > P1表示網(wǎng)頁標(biāo)題部分,網(wǎng)頁內(nèi)容描述部分,網(wǎng)頁關(guān)鍵詞部分,網(wǎng)頁正文部分各自的主題相關(guān)程度。由于網(wǎng)頁標(biāo)題,內(nèi)容描述部分,關(guān)鍵詞部分是網(wǎng)頁內(nèi)容的概要,它們中間是否包含用戶定義關(guān)鍵詞,對(duì)網(wǎng)頁的主題相關(guān)度的影響較高。網(wǎng)頁正文部分由于篇幅較長,其含有用戶定義關(guān)鍵詞對(duì)網(wǎng)頁主題相關(guān)度的影響相對(duì)會(huì)較小,這樣就滿足式(2)。同時(shí),由于標(biāo)題部分,內(nèi)容描述部分,關(guān)鍵、詞部分篇幅非常小,通常只用一句話描述,所以只要其包含用戶定義關(guān)鍵詞,它的主題相關(guān)度相對(duì)較高,此時(shí)可直接將其P值定義為I。也就是說,標(biāo)題部分、內(nèi)容描述部分或關(guān)鍵詞描述部分只要含有關(guān)鍵詞,相應(yīng)的主題相關(guān)度等于1,否則為O。正文部分雖然篇幅較長,其含有用戶定義關(guān)鍵詞對(duì)自身網(wǎng)頁主題相關(guān)度的影響相對(duì)會(huì)較小,但是其主題相關(guān)度與用戶定義關(guān)鍵詞數(shù)量滿足這一規(guī)律正文部分含有的用戶定義關(guān)鍵詞越多,正文部分主題相關(guān)度就越高,最后無限趨近于I。本發(fā)明使用高斯函數(shù)模擬這一規(guī)律。這樣,本發(fā)明得到了計(jì)算標(biāo)題部分,內(nèi)容描述部分,關(guān)鍵詞部分,正文部分各自的主題相關(guān)度的公式,如(3),(4),
(5), (6)。
權(quán)利要求
1.一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是包含一個(gè)控制節(jié)點(diǎn),多個(gè)爬行節(jié)點(diǎn),一個(gè)網(wǎng)頁數(shù)據(jù)庫,一個(gè)網(wǎng)頁分析器,一個(gè)主題鏈接存儲(chǔ)器; 所述主題鏈接存儲(chǔ)器,用于存放系統(tǒng)未完成抓取的超鏈接; 所述控制節(jié)點(diǎn),用于從主題鏈接存儲(chǔ)器中提取超鏈接,去除其中已經(jīng)被系統(tǒng)抓取過的超鏈接,然后將未被系統(tǒng)抓取過的超鏈接分配給爬行節(jié)點(diǎn),并控制是否終止系統(tǒng)運(yùn)行;所述爬行節(jié)點(diǎn),用于接收控制節(jié)點(diǎn)分配的超鏈接,然后下載超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中; 所述網(wǎng)頁數(shù)據(jù)庫,用于存放爬行節(jié)點(diǎn)抓取的網(wǎng)頁,用于網(wǎng)頁分析器作進(jìn)一步的分析;所述網(wǎng)頁分析器,用于定期從網(wǎng)頁數(shù)據(jù)庫中讀取爬行節(jié)點(diǎn)下載的最新網(wǎng)頁,對(duì)網(wǎng)頁進(jìn)行內(nèi)容分析,計(jì)算網(wǎng)頁及網(wǎng)頁內(nèi)所含超鏈接的主題相關(guān)度,然后根據(jù)主題相關(guān)度將相關(guān)的超鏈接存放到主題鏈接存儲(chǔ)器中,將每個(gè)網(wǎng)頁的主題相關(guān)度存于網(wǎng)頁數(shù)據(jù)庫中。
2.如權(quán)利要求I所述主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是:所述主題鏈接存儲(chǔ)器中設(shè)有HighQueue隊(duì)列和LowQueue隊(duì)列兩個(gè)子模塊;HighQueue隊(duì)列存儲(chǔ)主題相關(guān)度大于預(yù)設(shè)閾值T的超鏈接,LowQueue隊(duì)列存儲(chǔ)主題相關(guān)度不大于預(yù)設(shè)閾值T的超鏈接;系統(tǒng)工作流程包括以下步驟, 步驟1,用戶定義初始超鏈接集,定義主題相關(guān)的關(guān)鍵詞以及主題相關(guān)度的閾值T ;步驟2,爬蟲系統(tǒng)的控制節(jié)點(diǎn)從初始超鏈接集中提取超鏈接,然后將超鏈接分配給爬蟲系統(tǒng)的各個(gè)爬行節(jié)點(diǎn); 步驟3,爬行節(jié)點(diǎn)抓取超鏈接指定的網(wǎng)頁并且將其存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中; 步驟4,網(wǎng)頁分析器從網(wǎng)頁數(shù)據(jù)庫中讀取網(wǎng)頁,抽取網(wǎng)頁上的超鏈接,并且根據(jù)主題相關(guān)的關(guān)鍵詞進(jìn)行主題相關(guān)度計(jì)算,將主題相關(guān)度大于閾值T的超鏈接存入主題鏈接存儲(chǔ)器的HighQueue隊(duì)列中,將主題相關(guān)度不大于閾值T的超鏈接存入主題鏈接存儲(chǔ)器的LowQueue隊(duì)列中; 步驟5,控制節(jié)點(diǎn)先從主題鏈接存儲(chǔ)器的HighQueue隊(duì)列提取超鏈接,若HighQueue隊(duì)列為空就從LowQueue隊(duì)列中提取超鏈接,并且在去重后將超鏈接分配給各個(gè)爬行節(jié)點(diǎn);步驟6,重復(fù)執(zhí)行步驟3、4、5,在滿足系統(tǒng)終止條件時(shí)終止重復(fù)執(zhí)行。
3.如權(quán)利要求2所述主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是所述控制節(jié)點(diǎn)中設(shè)有已抓取超鏈接隊(duì)列和任務(wù)分配器兩個(gè)子模塊;已抓取超鏈接隊(duì)列存儲(chǔ)有爬蟲系統(tǒng)已經(jīng)抓取過的所有超鏈接,任務(wù)分配器負(fù)責(zé)將待抓取的超鏈接分配給爬行節(jié)點(diǎn);控制節(jié)點(diǎn)每從主題鏈接存儲(chǔ)器讀取一個(gè)超鏈接,就在已抓取超鏈接隊(duì)列中檢查它是否已經(jīng)存在,若存在,丟棄該超鏈接,否則保存該超鏈接到任務(wù)分配器和已抓取超鏈接隊(duì)列中; 控制節(jié)點(diǎn)從主題鏈接存儲(chǔ)器中讀取超鏈接的規(guī)則是,先判斷HighQueue隊(duì)列是否為空,不是則按照最高相關(guān)度優(yōu)先的方式依次從HighQueue隊(duì)列中提取超鏈接;如果HighQueue隊(duì)列為空,控制節(jié)點(diǎn)就按照先來先到的方式從LowQueue隊(duì)列中提取超鏈接;控制節(jié)點(diǎn)控制系統(tǒng)終止的條件是,已抓取網(wǎng)頁數(shù)量超過了用戶定義的上限,預(yù)先在步驟I中定義網(wǎng)頁下載數(shù)量的上限;或者HighQueue隊(duì)列連續(xù)為空時(shí)間超過預(yù)設(shè)的時(shí)間閾值PD。
4.如權(quán)利要求2或3所述主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是所述爬行節(jié)點(diǎn)中設(shè)有任務(wù)申請(qǐng)器和網(wǎng)頁下載器兩個(gè)子模塊;當(dāng)爬行節(jié)點(diǎn)空閑時(shí),任務(wù)申請(qǐng)器向控制節(jié)點(diǎn)申請(qǐng)一定數(shù)量的下載任務(wù),控制節(jié)點(diǎn)將超鏈接分配給各個(gè)爬行節(jié)點(diǎn)時(shí),按照該爬行節(jié)點(diǎn)申請(qǐng)的數(shù)量發(fā)送超鏈接;網(wǎng)頁下載器用于下載控制節(jié)點(diǎn)發(fā)送過來的超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁保存到網(wǎng)頁數(shù)據(jù)庫中。
5.如權(quán)利要求2或3所述主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是所述網(wǎng)頁分析器包括內(nèi)容抽取器和主題相關(guān)度計(jì)算器兩個(gè)子模塊;內(nèi)容抽取器通過正則表達(dá)式提取網(wǎng)頁的標(biāo)題部分、內(nèi)容描述部分、關(guān)鍵詞描述部分、正文部分及超鏈接部分;主題相關(guān)度計(jì)算器根據(jù)內(nèi)容抽取器的提取結(jié)果計(jì)算主題相關(guān)度,然后將主題相關(guān)度大于預(yù)設(shè)閾值T的超鏈接存放于主題鏈接存儲(chǔ)器中的HighQueue隊(duì)列中,將不大于預(yù)設(shè)閾值T的超鏈接存放于主題鏈接存儲(chǔ)器的LowQueue隊(duì)列中。
6.如權(quán)利要求5所述主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),其特征是主題相關(guān)度計(jì)算器根據(jù)內(nèi)容抽取器的提取結(jié)果計(jì)算主題相關(guān)度,具體實(shí)現(xiàn)如下, (1)根據(jù)網(wǎng)頁A中關(guān)鍵詞的位置與數(shù)量計(jì)算網(wǎng)頁A的主題相關(guān)度,結(jié)果記為R(A1),步驟如下, 讀取網(wǎng)頁A的標(biāo)題部分、內(nèi)容描述部分、關(guān)鍵詞描述部分和正文部分; 計(jì)算這4個(gè)部分各自的主題相關(guān)度,計(jì)算方法為,標(biāo)題部分、內(nèi)容描述部分或關(guān)鍵詞描述部分只要含有關(guān)鍵詞,相應(yīng)的主題相關(guān)度等于1,否則為O ;而正文部分的主題相關(guān)度用其包含的關(guān)鍵詞數(shù)量的高斯函數(shù)模擬; 最后將這4個(gè)部分的主題相關(guān)度乘以各自的預(yù)設(shè)權(quán)重然后相加,得到網(wǎng)頁A的主題相關(guān)度; (2)根據(jù)網(wǎng)頁A上指向已下載的主題相關(guān)度大于T的網(wǎng)頁的超鏈接數(shù)量及這些網(wǎng)頁的主題相關(guān)度計(jì)算網(wǎng)頁A的主題相關(guān)度,結(jié)果記為R(A2); (3)主題相關(guān)度計(jì)算器根據(jù)鏈向網(wǎng)頁A的主題網(wǎng)頁的數(shù)量和主題相關(guān)度計(jì)算網(wǎng)頁A的 主題相關(guān)度,結(jié)果記為R(A3); (4)網(wǎng)頁A的主題相關(guān)度R㈧取R(A1),R(A2),R(A3)中的最大值。
全文摘要
一種主題相關(guān)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),包括主題鏈接存儲(chǔ)器,用于存放系統(tǒng)未完成抓取的超鏈接;控制節(jié)點(diǎn),用于從主題鏈接存儲(chǔ)器中提取超鏈接,去除其中已經(jīng)被系統(tǒng)抓取過的超鏈接,然后將未被系統(tǒng)抓取過的超鏈接分配給爬行節(jié)點(diǎn),并控制是否終止系統(tǒng)運(yùn)行;爬行節(jié)點(diǎn),用于接收控制節(jié)點(diǎn)分配的超鏈接,然后下載超鏈接標(biāo)識(shí)的網(wǎng)頁,并且將網(wǎng)頁存儲(chǔ)在網(wǎng)頁數(shù)據(jù)庫中;網(wǎng)頁數(shù)據(jù)庫,用于存放爬行節(jié)點(diǎn)抓取的網(wǎng)頁;網(wǎng)頁分析器,用于定期從網(wǎng)頁數(shù)據(jù)庫中讀取爬行節(jié)點(diǎn)下載的最新網(wǎng)頁,對(duì)網(wǎng)頁進(jìn)行內(nèi)容分析,計(jì)算網(wǎng)頁及網(wǎng)頁內(nèi)所含超鏈接的主題相關(guān)度,然后根據(jù)主題相關(guān)度將相關(guān)的超鏈接存放到主題鏈接存儲(chǔ)器中,將每個(gè)網(wǎng)頁的主題相關(guān)度存于網(wǎng)頁數(shù)據(jù)庫中。
文檔編號(hào)G06F17/30GK102646129SQ20121006080
公開日2012年8月22日 申請(qǐng)日期2012年3月9日 優(yōu)先權(quán)日2012年3月9日
發(fā)明者何炎祥, 劉楠, 吳黎兵, 柯亞林 申請(qǐng)人:武漢大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大名县| 瑞丽市| 阿城市| 喀喇沁旗| 浦北县| 湖州市| 额济纳旗| 淮滨县| 那坡县| 沙湾县| 吕梁市| 华容县| 班戈县| 广东省| 长武县| 如皋市| 贡觉县| 西丰县| 古浪县| 曲阜市| 城市| 双牌县| 泰来县| 中宁县| 奇台县| 闸北区| 当阳市| 浦江县| 桃园市| 灵璧县| 阿克苏市| 兖州市| 米泉市| 宁津县| 富锦市| 清镇市| 新蔡县| 勃利县| 额敏县| 绿春县| 山阴县|