專利名稱:基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)挖掘技術(shù),具體涉及一種基于社會(huì)標(biāo)注的主題 爬蟲系統(tǒng),該系統(tǒng)提出了一種新的爬行策略,根據(jù)網(wǎng)頁的社會(huì)標(biāo)注與預(yù)定 主題之間的相關(guān)度來指導(dǎo)爬蟲的爬行,能夠使主題爬蟲準(zhǔn)確、有效地爬取 相關(guān)頁面,并根據(jù)爬取頁面的相關(guān)度動(dòng)態(tài)調(diào)整待爬行網(wǎng)頁的優(yōu)先級(jí)。'
背景技術(shù):
隨著因特網(wǎng)的飛速發(fā)展,人們?cè)絹碓揭蕾囉?jì)算機(jī)網(wǎng)絡(luò)來查找需要的信 息,網(wǎng)絡(luò)己經(jīng)成為人們生活中獲取信息的一個(gè)重要來源。搜索引擎的出現(xiàn) 使人們可以利用關(guān)鍵詞快速地查詢相關(guān)的網(wǎng)頁信息,避免漫無目的地査找,
節(jié)省獲取信息的時(shí)間,從而大大提高了工作效率,如常用的Yahoo !, Google, 百度。網(wǎng)絡(luò)爬蟲遵循一定策略在互聯(lián)網(wǎng)上進(jìn)行網(wǎng)頁爬取,為搜索引擎的后 續(xù)處理提供數(shù)據(jù),在搜索引擎中占重要的地位。隨著網(wǎng)絡(luò)上多元化信息的 增多,傳統(tǒng)的搜索引擎已經(jīng)不能滿足人們對(duì)個(gè)性化信息搜索的需求,面向 主題的搜索引擎應(yīng)運(yùn)而生,從而提供更精確的數(shù)據(jù)以及更及時(shí)地更新。主 題搜索引擎是以構(gòu)筑某一專題領(lǐng)域或?qū)W科領(lǐng)域的英特網(wǎng)信息資源庫為目 標(biāo),智能地在互聯(lián)網(wǎng)上搜集符合設(shè)定主題或滿足學(xué)科需要的信息資源。相 應(yīng)的主題搜索引擎對(duì)爬蟲提出了更高的要求,通用爬蟲要求盡可能多地爬 取頁面,做到面面俱到,從而可以滿足各領(lǐng)域用戶的搜索請(qǐng)求,而主題爬 蟲是為主題搜索引擎服務(wù)的,面向的是特定領(lǐng)域的用戶,因此要求盡可能 多地爬取與主題相關(guān)的頁面,從而為后續(xù)地搜索提供更準(zhǔn)確的結(jié)果和更友 好的用戶體驗(yàn)。
在一個(gè)爬蟲系統(tǒng)中,爬蟲的搜索策略決定著爬蟲爬行的方向,從而也 就決定著爬行所能獲取的頁面。為使得爬蟲能夠獲取與主題相關(guān)度最高的網(wǎng)頁集,就必須針對(duì)性地制定相應(yīng)的搜索策略?,F(xiàn)有的搜索策略分成兩類, 一類是基于內(nèi)容評(píng)價(jià)的搜索策略, 一類是基于網(wǎng)絡(luò)鏈接結(jié)構(gòu)評(píng)價(jià)的搜索策 略。
基于內(nèi)容評(píng)價(jià)的搜索策略是利用頁面中的文本信息作為主題知識(shí)指導(dǎo) 搜索,并根據(jù)頁面或鏈接文本與主題(如關(guān)鍵詞,主題相關(guān)文檔等)之間
的相似度來評(píng)價(jià)鏈接價(jià)值的高低。主要有Fish Search搜索策略和Shark Search搜索策略。Fish Search是在1993年由荷蘭TUE大學(xué)Debra教授提出 的。Fish Search將用戶輸入的查詢關(guān)鍵字或者短語作為主題,將包含查詢 串的頁面當(dāng)作是主題相關(guān)的,并且只搜索主題相關(guān)的頁面。算法中動(dòng)態(tài)維 護(hù)一個(gè)URL優(yōu)先隊(duì)列,根據(jù)Potential_score (網(wǎng)頁的相關(guān)度)從高到低進(jìn) 行搜索,Potential—score只有1, 0.5, O三禾中值。Shark Search在Fish Search 的基礎(chǔ)上做了改進(jìn),充分利用錨文本以及鏈接的上下文,采用空間向量模 型來改善相似度計(jì)算時(shí)簡(jiǎn)單的兩值判斷所帶來的問題,將對(duì)象相關(guān)值進(jìn)行 了細(xì)化。上面所討論的兩種算法都是基于內(nèi)容評(píng)價(jià)的搜索算法,根據(jù)語義 相似度的高低決定鏈接的訪問順序。這類方法起源于文本檢索中對(duì)文本相 似度的評(píng)價(jià),它的顯著優(yōu)點(diǎn)是計(jì)算量比較小。但是,因?yàn)閃eb頁面不同于 傳統(tǒng)的文本,它是一種半結(jié)構(gòu)化的文檔,其中包含了許多結(jié)構(gòu)信息,Web 頁面不是單獨(dú)存在的,頁面中的超鏈接在一定程度上表示了頁面之間存在 著某些關(guān)系。由于基于內(nèi)容評(píng)價(jià)的網(wǎng)絡(luò)爬蟲忽略了這些信息,因而在預(yù)測(cè) 超鏈接的價(jià)值方面存在一些缺陷,容易造成網(wǎng)頁的誤選。此外,評(píng)價(jià)的準(zhǔn) 確性也依賴于對(duì)主題關(guān)鍵詞集合的選擇和構(gòu)建。
基于網(wǎng)絡(luò)鏈接結(jié)構(gòu)評(píng)價(jià)的搜索策略是利用Web結(jié)構(gòu)信息指導(dǎo)搜索,并 通過分析Web頁面之間的相互引用關(guān)系來確定頁面和鏈接的重要性價(jià)值。 把對(duì)頁面的引用看作是對(duì)它所指的頁面的贊許,引用表現(xiàn)在頁面上就是超 鏈接。當(dāng)頁面A通過超鏈接指向頁面B時(shí),說明頁面B與頁面A相關(guān)聯(lián)并 且頁面B是A認(rèn)為質(zhì)量較好的頁面。通過網(wǎng)頁之間的鏈接結(jié)構(gòu),來評(píng)價(jià)與
7網(wǎng)頁有直接或間接鏈接關(guān)系的網(wǎng)頁的算法,典型的有PageRank和HITS, 兩者都是通過對(duì)網(wǎng)頁間鏈接度的遞歸和規(guī)范化計(jì)算,得到每個(gè)網(wǎng)頁的重要 度評(píng)價(jià)。PageRank算法認(rèn)為如果一個(gè)頁面被許多其他頁面引用,則這個(gè)頁 面很可能就是重要頁面; 一個(gè)頁面盡管沒有被多次引用,但被一個(gè)重要頁 面引用,那么這個(gè)頁面很可能也是重要頁面; 一個(gè)頁面的重要性被均分并 將傳遞到它所引用的頁面中。從而爬蟲可以按照網(wǎng)頁的重要性進(jìn)行爬行。 PageRank算法考慮了用戶訪問行為的隨機(jī)性,f,忽略了用戶訪問行為的目 的性,即網(wǎng)頁和鏈接與查詢主題的相關(guān)性,在返回結(jié)果中一些與主題無關(guān) 但權(quán)重較高的網(wǎng)頁將會(huì)排在比較靠俞的位置。針對(duì)這個(gè)問題,HITS算法計(jì) 算頁面的Authority權(quán)重和Hub權(quán)重,并以此決定頁面中鏈接的訪問順序。 基于鏈接結(jié)構(gòu)評(píng)價(jià)的搜索策略,考慮了鏈接的結(jié)構(gòu)特征,對(duì)主題相關(guān)網(wǎng)站 搜索時(shí)使用效果較好,但由于忽略頁面內(nèi)容與主題的相關(guān)性,容易出現(xiàn)搜 索偏離主題的"主題漂移"問題,另外在搜索過程中需要迭代計(jì)算PageRank 值或Authority及Hub權(quán)重,當(dāng)頁面和鏈接數(shù)量不斷增長(zhǎng)時(shí)計(jì)算復(fù)雜度也呈 指數(shù)級(jí)增長(zhǎng)。
標(biāo)注也稱為標(biāo)簽(Tagging)或書簽(Bookmark),可理解為對(duì)目標(biāo)或 對(duì)象標(biāo)示的名稱。標(biāo)注是個(gè)體行為,如果通過某種方式將存在的標(biāo)簽匯集 在一起,就成為社會(huì)標(biāo)注(Social Annotation),也稱社會(huì)標(biāo)簽(Social Bookmark)。社會(huì)標(biāo)注作為一種新型的網(wǎng)絡(luò)資源管理和組織形式,在許多網(wǎng) 絡(luò)應(yīng)用中發(fā)揮著重要作用。目前,社會(huì)標(biāo)注已經(jīng)成為人們對(duì)網(wǎng)絡(luò)資源自由 標(biāo)注、自由分類的專業(yè)術(shù)語。越來越多的網(wǎng)絡(luò)文檔,包括網(wǎng)頁、博客文章、 圖像以及視頻等都得到了標(biāo)注。標(biāo)注是主題相關(guān)的網(wǎng)頁資源的一種概要性 描述;同一標(biāo)注的使用量可以顯示出該主題下網(wǎng)頁的數(shù)量規(guī)模,正是此特 性使得社會(huì)標(biāo)注可以應(yīng)用到主題爬蟲的搜索策略上,準(zhǔn)確地發(fā)現(xiàn)相關(guān)主題。
發(fā)明內(nèi)容
8本發(fā)明的目的在于設(shè)計(jì)了一種基于社會(huì)標(biāo)注的網(wǎng)絡(luò)爬蟲系綠,該系統(tǒng) 中爬蟲的爬行策略是通過社會(huì)標(biāo)注來實(shí)現(xiàn)的,具有爬行獲取頁面相關(guān)度高, 與預(yù)定主題貼切,爬行效率高的特點(diǎn)。
本發(fā)明提供的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),該系統(tǒng)包括頁面獲取模 塊,頁面處理模塊,相關(guān)度計(jì)算模塊,存儲(chǔ)模塊,鏈接提取模塊和鏈接分
析模塊; '
存儲(chǔ)模塊用于存儲(chǔ)爬行過程中所獲取的頁面數(shù)據(jù);
頁面獲取模塊根據(jù)被獲取網(wǎng)站的機(jī)器人禁入?yún)f(xié)議文件、網(wǎng)絡(luò)帶寬的限 制以及網(wǎng)頁優(yōu)先級(jí)的高低,利用網(wǎng)頁地址列表及其緩存進(jìn)行頁面爬取,并 將爬取后的頁面?zhèn)魉徒o頁面處理模塊;
頁面處理模塊采用多線程并行處理,每個(gè)線程接受從頁面獲取模塊傳 過來的網(wǎng)頁,通過對(duì)比存儲(chǔ)模塊內(nèi)的數(shù)據(jù),判斷該頁面是否已經(jīng)被獲取過, 并將不重復(fù)的頁面?zhèn)魉徒o相關(guān)度計(jì)算模塊;
相關(guān)度計(jì)算模塊接收頁面處理模塊傳送過來的不重復(fù)頁面,從存儲(chǔ)模 塊獲取該頁面的社會(huì)標(biāo)注、上級(jí)頁面的社會(huì)標(biāo)注,以及鏈入該頁面的其他 頁面與預(yù)定主題的相關(guān)度,綜合所有這些因素計(jì)算該頁面與預(yù)定主題的相 關(guān)度,并將計(jì)算得到的相關(guān)度及頁面的相關(guān)信息存儲(chǔ)到存儲(chǔ)模塊中,然后 將滿足相關(guān)度要求的頁面?zhèn)魉徒o鏈接提取模塊;
鏈接提取模塊對(duì)滿足相關(guān)度要求的頁面進(jìn)行修復(fù),然后進(jìn)行頁面解析, 將包含在頁面中的鏈接提取出來,再對(duì)鏈接進(jìn)行規(guī)范化處理,使其符合統(tǒng) 一的格式,再傳送給鏈接處理模塊;
鏈接處理模塊用于進(jìn)行鏈接過濾,使鏈接地址符合預(yù)先設(shè)定的規(guī)則, 該模塊還負(fù)責(zé)從接收到的鏈接中去掉己經(jīng)獲取過的鏈接,將待取鏈接地址 進(jìn)行DNS (域名服務(wù)器)的預(yù)取工作,并為鏈接和DNS緩存提供緩沖區(qū)。上述結(jié)構(gòu)的爬蟲系統(tǒng)提出了以社會(huì)標(biāo)注為基礎(chǔ)的網(wǎng)絡(luò)爬蟲的搜索策 略,并以此為核心建立起一個(gè)爬蟲系統(tǒng)。針對(duì)具體的預(yù)定主題,本系統(tǒng)在 給定種子鏈接的基礎(chǔ)上,依托社會(huì)標(biāo)注庫高速地爬取主題相關(guān)頁面,完整 地實(shí)現(xiàn)了一個(gè)爬蟲的功能。本系統(tǒng)利用多種優(yōu)化策略提高爬蟲效率,進(jìn)而 極大地解決了現(xiàn)有爬蟲的瓶頸部分——網(wǎng)絡(luò)帶寬,將降低網(wǎng)頁爬取效率的 因素降到最低,實(shí)現(xiàn)了高速準(zhǔn)確的網(wǎng)絡(luò)爬蟲系統(tǒng)。具體而言,本發(fā)明具有 如下優(yōu)點(diǎn)
(1) 爬取頁面與主題貼切獲取的頁面與預(yù)定主題的相關(guān)度大,使用 社會(huì)標(biāo)注計(jì)算頁面的主題相關(guān)度,社會(huì)標(biāo)注是對(duì)網(wǎng)頁內(nèi)容的概括和總結(jié), 是具備語義信息的,能夠最大程度地真實(shí)反映網(wǎng)頁所代表的主題內(nèi)容。
(2) 網(wǎng)絡(luò)帶寬利用率高通過使用異步IO以及多線程技術(shù),能夠極 大降低其他步驟對(duì)于獲取頁面操作的延誤時(shí)間,充分利用了網(wǎng)絡(luò)帶寬,解 決了爬蟲的瓶頸部分,即網(wǎng)絡(luò)帶寬由于等待頁面的返回而一直空閑。
(3) 程序運(yùn)行效率高通過使用多級(jí)緩存機(jī)制,減少了由于多線程而 導(dǎo)致的頻繁加鎖解鎖操作的次數(shù),加鎖解鎖操作會(huì)暫停網(wǎng)頁的獲取,從而 在切換時(shí)浪費(fèi)了大量的時(shí)間,影響了爬蟲整體運(yùn)行效率。通過使用多級(jí)緩 存,減少了切換的次數(shù),從而提高了程序運(yùn)行的效率。
圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖。-
圖2是本發(fā)明系統(tǒng)的總體流程圖。
圖3是本發(fā)明系統(tǒng)的頁面獲取模塊的工作流程圖。
圖4是本發(fā)明系統(tǒng)的鏈接分析模塊的工作流程圖。
圖5是本發(fā)明系統(tǒng)的一種具體實(shí)施方式
的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
10下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步詳細(xì)地說明。
如圖1所示,本發(fā)明提出了基于社會(huì)標(biāo)注的網(wǎng)絡(luò)爬蟲策略,基于此策
略設(shè)計(jì)了異步IO的多線程爬蟲系統(tǒng),該系統(tǒng)包括頁面獲取模塊100,頁面 處理模塊200,相關(guān)度計(jì)算模塊300,存儲(chǔ)模塊400,鏈接提取模塊500, 鏈接分析模塊600。
頁面獲取模塊100負(fù)責(zé)網(wǎng)頁的獲取,根據(jù)被獲取網(wǎng)站的robots.txt (robots.txt:機(jī)器人禁入?yún)f(xié)議文件)、網(wǎng)絡(luò)帶寬的限制以及網(wǎng)頁優(yōu)先級(jí)的高 低來進(jìn)行頁面獲取。頁面獲取模塊100將獲取的頁面交由頁面處理模塊200 來進(jìn)行處理。
頁面獲取模塊100從種子URL (URL:統(tǒng)一資源定位符,也稱為網(wǎng)頁 地址)列表出發(fā)來進(jìn)行頁面的爬取,頁面爬取采用異步IO的方式進(jìn)行,加 以一系列的緩存來大大減少獲取頁面前期的準(zhǔn)備工作,例如采用DNS (DNS:域名服務(wù)器)緩存以及線程池等技術(shù)。
頁面處理模塊200接受從頁面獲取模塊100傳過來的網(wǎng)頁,通過對(duì)比 存儲(chǔ)模塊400內(nèi)的數(shù)據(jù),判斷該頁面是否己經(jīng)被獲取過,并將不重復(fù)的頁 面?zhèn)鹘o相關(guān)度計(jì)算模塊300進(jìn)行下一階段的處理。互聯(lián)網(wǎng)上存在大量網(wǎng)頁 包含的卻是相同的內(nèi)容,頁面處理模塊200通過比較判斷來避免相同頁面 的重復(fù)處理,將計(jì)算機(jī)的處理能力充分地用于未知頁面的處理。
相關(guān)度計(jì)算模塊300用于對(duì)傳遞過來的網(wǎng)頁進(jìn)行相關(guān)度的計(jì)算,從而 確定與預(yù)定主題的相關(guān)程度,進(jìn)而決定是否對(duì)該頁面進(jìn)行下一步的操作。
影響頁面相關(guān)度的因素除了自身頁面的社會(huì)標(biāo)注外,還和該頁面的上 兩級(jí)頁面的社會(huì)標(biāo)注,以及引用該頁面的其他頁面的主題相關(guān)度有關(guān),這 些因素共同決定了該頁面與預(yù)定主題的相關(guān)度,從而基于相關(guān)度來指導(dǎo)爬 蟲的爬行方向,實(shí)現(xiàn)預(yù)定主題相關(guān)頁面的爬取。相關(guān)度計(jì)算模塊300從存 儲(chǔ)模塊400獲取自身頁面的社會(huì)標(biāo)注,該頁面的上兩級(jí)頁面的社會(huì)標(biāo)注, 以及鏈入該頁面的其他頁面的社會(huì)標(biāo)注,綜合所有這些因素來計(jì)算該頁面的主題相關(guān)度,繼而調(diào)用存儲(chǔ)模塊400存儲(chǔ)計(jì)算結(jié)果和頁面相關(guān)的信息, 然后傳給鏈接提取模塊500。
存儲(chǔ)模塊400主要用于存儲(chǔ)爬行過程中所獲取的頁面數(shù)據(jù),數(shù)據(jù)除了 給搜索引擎的索引部件使用以外,更重要的是在爬蟲的其他模塊中提供必 要的數(shù)據(jù)以支撐其他模塊的正常運(yùn)行,包括給頁面處理模塊200提供頁面 信息,使其不重復(fù)處理頁面;給相關(guān)度計(jì)算模塊300提供頁面的相關(guān)度信 息,以及頁面的鏈接結(jié)構(gòu)信息,以供其計(jì)算相關(guān)度,并將計(jì)算所得相關(guān)度 進(jìn)行存儲(chǔ);給鏈接處理模塊600提供已獲取鏈接信息,去掉已經(jīng)爬行過的 頁面。
鏈接提取模塊500將滿足相關(guān)度的頁面進(jìn)行修復(fù),然后進(jìn)行頁面解析, 將包含在頁面中的各種顯式的或者隱式的鏈接提取出來,進(jìn)行鏈接的規(guī)范 化,使其符合統(tǒng)一的格式,在系統(tǒng)內(nèi)部對(duì)于同一個(gè)URL地址只存在一種表 示方式,便于判斷是否相等,便于鏈接處理模塊600去除重復(fù)頁面。
鏈接處理模塊600用于鏈接過濾,使鏈接地址符合預(yù)先設(shè)定的規(guī)則, 比如只獲取特定域名的,或者在特定IP段內(nèi)的域名地址。除此以外該模塊 還負(fù)責(zé)從獲取的鏈接中去掉已經(jīng)獲取過的,將待取鏈接地址進(jìn)行DNS的預(yù) 取工作,并為鏈接和DNS緩存提供緩沖區(qū),以保證爬取效率的最大化。
下面舉例具體說明本發(fā)明基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng)中各部分的具 體構(gòu)成。
如圖5所示,頁面獲取模塊100包括爬蟲配置模塊110,待取鏈接隊(duì)列 120,域名解析模塊130,禮貌策略模塊140,機(jī)器人禁入?yún)f(xié)議文件(robots.txt) 排除模塊150,套接字連接獲取模塊160,頁面處理模塊170,待取鏈接隊(duì) 列一級(jí)緩存180。
爬蟲配置模塊110主要是對(duì)爬蟲運(yùn)行時(shí)的各項(xiàng)參數(shù)進(jìn)行配置,以確保 系統(tǒng)的正常運(yùn)行,主要參數(shù)有爬行主題的描述(可以是多個(gè)關(guān)鍵詞,或者是一段相關(guān)的文字)、數(shù)據(jù)存放位置、爬行深度和廣度、爬行域名限制或者 IP限制、并發(fā)處理線程數(shù)、相關(guān)度閾值、各項(xiàng)臨時(shí)數(shù)據(jù)的緩存大小以及禮 貌策略類型等。在開始爬行前通過修改相應(yīng)的配置文件來進(jìn)行配置,最后
將種子URL列表注入到待取鏈接隊(duì)列120,種子URL列表一般為人工選取 的貼合主題的一些權(quán)威的URL地址。
待取鏈接隊(duì)列120存放著待獲取的頁面URL,這個(gè)待取隊(duì)列保持一個(gè) 合適的長(zhǎng)度,同時(shí)URL按照相關(guān)度在待取隊(duì)列中進(jìn)行排序,優(yōu)先爬取相關(guān) 度高的URL,優(yōu)先獲得最相關(guān)的頁面,提高了主題爬蟲的準(zhǔn)確度。待取鏈 接隊(duì)列120將所有地址都被處理完以后,自動(dòng)從待取鏈接隊(duì)列一級(jí)緩存180 中拷貝URL進(jìn)行填充,然后繼續(xù)進(jìn)行頁面獲取,如果一級(jí)緩沖為空,則等 待一定時(shí)間,如果一直為空,則停止爬行。待取鏈接隊(duì)列120取出URL地 址交由域名解析模塊130。
域名解析模塊130主要對(duì)URL地址進(jìn)行域名解析,獲取對(duì)應(yīng)的IP地址, 為后續(xù)的套接字連接做準(zhǔn)備,域名解析首先在DNS預(yù)取模塊630中的DNS 緩存中査詢,如果存在則直接使用,如果不存在則從DNS服務(wù)器進(jìn)行獲取, 并將獲取回來的記錄進(jìn)行緩存,以便于下次訪問同一域名時(shí)直接使用。URL 地址通過域名解析模塊130后,轉(zhuǎn)交給禮貌策略模塊140。
禮貌策略模塊140主要針對(duì)目標(biāo)網(wǎng)站做訪問速度的控制,減輕爬蟲對(duì) 所爬行主機(jī)的影響,不影響所爬行主機(jī)對(duì)外提供服務(wù),進(jìn)行友好地爬行。 一般采用固定時(shí)間間隔再次爬行的方法進(jìn)行限制,該時(shí)間間隔在爬蟲配置 模塊110中進(jìn)行設(shè)置,如果對(duì)同一個(gè)主機(jī)的訪問間隔小于配置的最短間隔 則推遲訪問,如果訪問間隔大于配置的間隔則轉(zhuǎn)交給robots.txt排除模塊 150。
robots.txt排除模塊150是遵循網(wǎng)站的要求,按照robot.txt文件中的描 述進(jìn)行爬行,robots.txt首先在robots.txt預(yù)取模塊640中査詢,如果已經(jīng)獲 取則直接使用;如果沒有則從網(wǎng)站根目錄獲取,并緩存,以便下次訪問同
13一站點(diǎn)時(shí)使用。如果鏈接地址在robots.txt禁止被爬行,那么就舍棄該頁面; 如果允許被爬行,那么就轉(zhuǎn)交給套接字連接獲取模塊160。
套接字連接獲取模塊160是基于異步IO的獲取機(jī)制,發(fā)送獲取請(qǐng)求后, 模塊并不等待頁面的返回,而是繼續(xù)獲取下一個(gè)頁面,沒有等待的過程, 最大程度地利用帶寬,在一定的時(shí)間獲取最多的頁面。如果有頁面返回則 交給頁面處理分配模塊170,使其他模塊對(duì)網(wǎng)頁獲取模塊的影響最小,大大 地提高了爬蟲的效率。爬蟲最大的瓶頸就是CPU的處理能力大大的超過了 網(wǎng)絡(luò)帶寬所能提供的數(shù)據(jù),因此只有將網(wǎng)絡(luò)帶寬的利用率最大化,才能真 正地提高爬蟲的效率。
頁面處理分配模塊170主要是對(duì)獲取的頁面進(jìn)行分配處理,采用固定 線程池,有頁面?zhèn)鱽頃r(shí),從線程池中獲取一個(gè)線程進(jìn)行處理,如果沒有空 閉的線程,那么就在線程池的任務(wù)隊(duì)列中進(jìn)行排隊(duì),等有空閑線程時(shí)再取 出進(jìn)行處理,在線程中將頁面交給頁面處理模塊200處理。
存儲(chǔ)模塊400主要包括信息存取模塊410,數(shù)據(jù)備份模塊420,網(wǎng)頁信 息存取接口 430,相關(guān)度信息存取接口 440,網(wǎng)頁鏈接信息存取接口 450, 社會(huì)標(biāo)注存取接口 460。
信息存取模塊410是存儲(chǔ)的基礎(chǔ)設(shè)施,主要是確定存儲(chǔ)的介質(zhì),可以 選擇Omcle, MySql等關(guān)系數(shù)據(jù)庫,也可以使用純文本格式。本舉例中選擇 的是BerkdeyDB,具有四種存儲(chǔ)方式,可以針對(duì)上層具體的存儲(chǔ)對(duì)象來調(diào) 整存儲(chǔ)方式以實(shí)現(xiàn)最佳的效率。
數(shù)據(jù)備份模塊420可以自動(dòng)的進(jìn)行數(shù)據(jù)的備份,同時(shí)也可以手動(dòng)備份, 以保證在數(shù)據(jù)損壞后實(shí)施數(shù)據(jù)恢復(fù),保證數(shù)據(jù)的安全。
網(wǎng)頁信息存取接口 430用來實(shí)現(xiàn)網(wǎng)頁內(nèi)容的存取,BerkeleyDB中采用 RECNO模式進(jìn)行存放,是順序的不定長(zhǎng)的存儲(chǔ)方式,以供后續(xù)的網(wǎng)頁分析 使用。相關(guān)度信息存取接口 440用來實(shí)現(xiàn)網(wǎng)頁的相關(guān)度信息的存取,提供數(shù) 據(jù)給后續(xù)的排序等其他操作使用,采用B-TREE模式進(jìn)行存放。
網(wǎng)頁鏈接信息存取接口 450用來實(shí)現(xiàn)網(wǎng)頁之間的鏈接信息的存取,供 計(jì)算相關(guān)度值時(shí)使用,采用B-TREE模式進(jìn)行存放。以網(wǎng)頁的域名作為前 綴來存儲(chǔ),可以高速地定位特定頁面。
社會(huì)標(biāo)注存取接口 460用來實(shí)現(xiàn)網(wǎng)頁的社會(huì)標(biāo)注的存取,以提供給計(jì) 算相關(guān)度值時(shí)使用,存放模式同樣是B-tree模式,因?yàn)閿?shù)量大,占用空間 大,使用該模式可以快速的根據(jù)網(wǎng)頁URL獲取社會(huì)標(biāo)注列表來進(jìn)行計(jì)算。
頁面處理模塊200主要是針對(duì)網(wǎng)頁去重,使得不同鏈接同一內(nèi)容的頁 面只處理一次,節(jié)約了存儲(chǔ)空間,同時(shí)又減少了 CPU (CPU:中央處理單 元)的處理時(shí)間,及時(shí)地讓出了線程為其他頁面處理。去重有多種方式, 本舉例中采用較簡(jiǎn)單的全文Hash值比對(duì)法,對(duì)頁面計(jì)算Hash值以后,通 過網(wǎng)頁信息存取接口 430獲取相關(guān)信息判斷是否已經(jīng)存在相同Hash值的網(wǎng) 頁,如果存在則退出線程,如果不存在則交給相關(guān)度計(jì)算模塊300繼續(xù)處 理。
相關(guān)度計(jì)算模塊300主要是利用社會(huì)標(biāo)注計(jì)算網(wǎng)頁的主題相關(guān)度。計(jì) 算主要涉及該網(wǎng)頁的社會(huì)標(biāo)注,該網(wǎng)頁的上級(jí)網(wǎng)頁的社會(huì)標(biāo)注以及鏈入網(wǎng) 頁的社會(huì)標(biāo)注,綜合三者計(jì)算相關(guān)度,然后比較閾值,判斷是否相關(guān)。其 中鏈入網(wǎng)頁集通過網(wǎng)頁鏈接信息存取接口 450獲取,網(wǎng)頁的社會(huì)標(biāo)注通過 社會(huì)標(biāo)注存取接口 460獲取。本舉例中用F (p)表示頁面p的上級(jí)頁面, 比如頁面 p 的網(wǎng)頁地址是 http:〃domain.com/sub , 那么 F (http:〃domain.com/sub) =http:〃domain.com,用R (p)來表示頁面p與主 題的相關(guān)度,ILs (p)表示頁面p的鏈入鏈接集合,SA (p)表示頁面p的 社會(huì)標(biāo)注,RA (d, i)表示社會(huì)標(biāo)注i與主題描述d的相關(guān)度。那么對(duì)于 一個(gè)頁面p與主題描述的相關(guān)度及(^可以用以下公式描述
15其中i r(/ ) = ra《(&4(/^(/ 》)
公式中S W(c/,/)表示頁面p的社會(huì)標(biāo)注與主題的相關(guān)度,而2 w^力
表示頁面p繼承了上一級(jí)頁面的社會(huì)標(biāo)注所獲取的主題相關(guān)度,
Z W"0表示頁面P繼承了上兩級(jí)頁面的社會(huì)標(biāo)注所獲取的主題相關(guān)
度,及rop)即ro《(&4(/^Q7)》表示p的鏈入頁面集合中出現(xiàn)次數(shù)最多的n個(gè) 標(biāo)注,Z i^w,/)表示頁面p繼承了鏈入頁面集合的社會(huì)標(biāo)注所獲取的主
題相關(guān)度,其中",",P,^為衰減因子,上兩級(jí)頁面的繼承關(guān)系必然存 在一個(gè)衰減量,上一級(jí)頁面相關(guān)度比上兩級(jí)相關(guān)度要大,因此上兩級(jí)頁面 繼承的衰減度要大,而從其他頁面繼承的社會(huì)標(biāo)注相關(guān)度比上兩級(jí)的稍大,
4個(gè)衰減因子的大小關(guān)系一般是">->p>5,自身社會(huì)標(biāo)注的主題相關(guān)度是 最重要的部分,"取值在(1,2)之間, 一般取值l,而-, p, ^一般取值大 約是在"的基礎(chǔ)上以2的指數(shù)級(jí)下降,/ ="/2±0. 1, p=a/4±0.05, p="/8 ±0.02。其中RT (p)表示在這個(gè)鏈入集合中取出出現(xiàn)次數(shù)最多的前n個(gè) 社會(huì)標(biāo)注,計(jì)算時(shí)只計(jì)算這n個(gè)標(biāo)注,因?yàn)檫@n個(gè)標(biāo)注最能體現(xiàn)其他頁面 對(duì)于頁面p的主題的認(rèn)同,也能真實(shí)地反映該頁面的真實(shí)含義,n的取值范 圍在(3, 6)之間能夠比較準(zhǔn)確地反映鏈入頁面對(duì)頁面p的影響, 一般取值5。 RT (p)獲取的最終結(jié)果是按照標(biāo)注出現(xiàn)的次數(shù)來排序,出現(xiàn)次數(shù)相同的時(shí) 候按照鏈入頁面的相關(guān)度值來排序。其中RA的計(jì)算方法可以采用經(jīng)典的空 間向量模型來計(jì)算,也可以使用互信息來計(jì)算,通過選定的方法以及實(shí)際 需求來確定各個(gè)衰減因子的值,l表示完全相關(guān),0表示完全不相關(guān),(0, 1)表示部分相關(guān),《, -, P, ^可依次取值為1, 0.5, 0.25, 0.125,計(jì)算結(jié)果R(p)大于等于l時(shí)就認(rèn)為是完全相關(guān)的,等于0就是完全不相關(guān),(0, l)之間表示部分相關(guān),主題相關(guān)度閾值的大小直接影響了收錄頁面的數(shù)量, 太大了收錄頁面太少,太小了收錄頁面的質(zhì)量太低,取值范圍在(0.3, 0.5) 比較合適,可以取0.4為主題相關(guān)度閾值基點(diǎn)來判斷頁面相關(guān)性。對(duì)于種子 URL的相關(guān)度,初始值設(shè)為l,表示完全相關(guān)。在實(shí)際運(yùn)行過程中,可以 通過調(diào)節(jié)衰減因子和閾值使獲取的相關(guān)頁面數(shù)量與質(zhì)量達(dá)到比較好的平 衡。計(jì)算完成后將相關(guān)度信息以及該頁面的社會(huì)標(biāo)注通過相關(guān)度信息存取 接口 440和社會(huì)標(biāo)注存取接口 460進(jìn)行存儲(chǔ)。對(duì)于滿足相關(guān)度閾值的頁面 轉(zhuǎn)交給鏈接提取模塊500。
鏈接提取模塊500主要包括網(wǎng)頁修復(fù)模塊510,鏈接解析模塊520,鏈 接規(guī)范化模塊530。
網(wǎng)頁修復(fù)模塊510主要是針對(duì)編寫不規(guī)范的網(wǎng)頁進(jìn)行修復(fù),比如對(duì)不 閉合TAG進(jìn)行閉合,修復(fù)后交給鏈接解析模塊520,以便于后續(xù)的鏈接解 析。
鏈接解析模塊520對(duì)網(wǎng)頁進(jìn)行解析,提取其中的鏈接,提取可以采用 的方式有兩種, 一種是正則表達(dá)式匹配;另一種是先將頁面轉(zhuǎn)化為DOM (DOM:文檔對(duì)象模型)樹,然后根據(jù)結(jié)構(gòu)特征提取鏈接。本舉例中采用 先轉(zhuǎn)化為DOM樹,然后再使用XPath來進(jìn)行鏈接獲取。鏈接全部提取出后 交由鏈接規(guī)范化模塊530。
鏈接規(guī)范化模塊530針對(duì)同一個(gè)URL地址存在多種不同表示方法,不 利于后續(xù)的根據(jù)URL來去重,因此需要將URL統(tǒng)一規(guī)范為一種形式。鏈 接提取完成以后將提取出的鏈接交由鏈接處理模塊600處理。
鏈接處理模塊600包括鏈接過濾模塊610,鏈接去重模塊620, DNS預(yù) 取模塊630,機(jī)器人禁入?yún)f(xié)議文件(robots.txt)預(yù)取模塊640,待取鏈接隊(duì)列二級(jí)緩沖650。
鏈接過濾模塊610是根據(jù)爬蟲配置文件中爬行的深度、廣度、范圍對(duì) 鏈接進(jìn)行過濾,使爬蟲在特定范圍內(nèi)爬行。將通過鏈接過濾的鏈接傳入鏈 接去重模塊620。
鏈接去重模塊620的功能是將己經(jīng)獲取的URL鏈接舍棄,因?yàn)殒溄右?guī) 范化模塊530已經(jīng)將URL進(jìn)行了規(guī)范化,同一個(gè)頁面只存在一種URL表 示方式,因此只需比較URL即可將已爬行的頁面舍棄掉。判斷該鏈接是否 已經(jīng)被獲取是通過査詢網(wǎng)頁信息獲取接口 430來實(shí)現(xiàn)的,如果已獲取則舍 棄,接著判斷下一個(gè)鏈接;如果沒有獲取則轉(zhuǎn)交給DNS預(yù)取模塊630、 robots.txt預(yù)取模塊640以及待取鏈接隊(duì)列二級(jí)緩沖650。
DNS預(yù)取模塊630是在一個(gè)獨(dú)立的線程中運(yùn)行,接收來自鏈接去重模 塊620傳入的鏈接地址。本模塊提前獲取該地址中域名對(duì)應(yīng)的IP地址提供 給域名解析模塊130,使得域名解析模塊130進(jìn)行域名解析時(shí)可以直接從緩 存中得到對(duì)應(yīng)的IP地址,避免了DNS解析的等待過程,加速了爬蟲的爬行。
robots.txt預(yù)取模塊640在一個(gè)獨(dú)立的線程中運(yùn)行,接收來自鏈接去重 模塊620傳入的鏈接地址,提前獲得網(wǎng)站的robots.txt并存放在緩存中,提 供給robots.txt排除模塊150使用。
待取鏈接隊(duì)列二級(jí)緩存650接收鏈接去重模塊620傳入的鏈接地址, 一個(gè)頁面鏈接處理完以后,該頁面中包含的鏈接地址全部存在待取鏈接隊(duì) 列二級(jí)緩存650中,然后一次性寫入待取鏈接隊(duì)列一級(jí)緩存180,避免了添 加每個(gè)鏈接時(shí)都要阻塞網(wǎng)頁獲取進(jìn)程。在添加鏈接地址和待取鏈接隊(duì)列120 中加了兩級(jí)緩存,避免了外部對(duì)主線程的阻塞,并且數(shù)據(jù)都被提前放入緩 存,從而可以不斷地進(jìn)行頁面獲取。
整個(gè)系統(tǒng)流程如圖2,其處理流程包括
(1)爬蟲的配置
對(duì)爬蟲進(jìn)行初始化,管理員通過配置文件配置爬蟲的參數(shù)(處理線程數(shù),主題描述,數(shù)據(jù)庫存放位置等),填充種子URL列表。
(2) 爬取頁面,進(jìn)行頁面的獲取以及頁面處理任務(wù)的分配,主要發(fā)生在 頁面獲取模塊100中。如圖3所示,具體流程如下
(2.1) 獲取待取URL,對(duì)待獲取頁面進(jìn)行DNS解析,從DNS緩存中獲 取對(duì)應(yīng)IP地址,如果緩存中不存在,則調(diào)用相應(yīng)函數(shù)去DNS服務(wù)器獲取, 并將新獲取的IP與域名信息加入DNS緩存。
(2.2) 使用禮貌策略,判斷待取URL主機(jī)的訪問間隔是否在設(shè)置時(shí)間范 圍內(nèi),如果超出設(shè)置的時(shí)間,則繼續(xù)下一步,如果沒有,則將該頁面放入 待取鏈接隊(duì)列,返回(1.1)
(2.3) 獲取待爬取網(wǎng)站的robots.txt,判斷待爬取頁面是否為禁止爬行頁 面,如果是,放棄,返回(1.1),如果不是則繼續(xù)下一步。
C2.4)發(fā)起套接字(Socket)鏈接,獲取頁面。有頁面返回,則將該頁面 交由圖3處理線程處理,如果沒有,返回(1.1)繼續(xù)執(zhí)行
(3) 網(wǎng)頁處理模塊200通過比對(duì)網(wǎng)頁庫從而確定該頁面是否已經(jīng)獲取并 被分析。如果該頁面已經(jīng)被分析,則繼續(xù)下一步,否則,舍棄該頁面,返 回繼續(xù)處理下一個(gè)頁面。
(4) 相關(guān)度計(jì)算模塊300對(duì)該頁面進(jìn)行相關(guān)度的計(jì)算,該計(jì)算基于社會(huì) 標(biāo)注進(jìn)行。對(duì)于相關(guān)度滿足閾值的網(wǎng)頁進(jìn)行下一步處理,并調(diào)用頁面存儲(chǔ) 模塊400將頁面進(jìn)行存儲(chǔ),相關(guān)度不滿足的頁面進(jìn)行丟棄或者進(jìn)行處理后 對(duì)解析出的URL降低爬取時(shí)的優(yōu)先級(jí)。
(5) 鏈接提取模塊500對(duì)網(wǎng)頁進(jìn)行修復(fù),主要是修復(fù)HTML (超文本標(biāo) 記語言)標(biāo)簽,以便于分析,分析修復(fù)后的頁面,進(jìn)行鏈接提取,并做URL 規(guī)范化,將提取出的URL按照一定的規(guī)則進(jìn)行處理,以保證指向同一個(gè)頁 面的URL形式相同。
(6) 鏈接處理模塊600對(duì)獲取的鏈接進(jìn)行處理,如圖4所示 (6.1)首先判斷待處理鏈接隊(duì)列是否為空,如果不為空,繼續(xù)(6.2),如果為空則將二級(jí)URL和DNS緩沖隊(duì)列拷貝到相應(yīng)的一級(jí)緩沖隊(duì)列,轉(zhuǎn)向 (6.3)。
(6.2) 通過査詢存儲(chǔ)模塊400來判斷是否該鏈接是否已經(jīng)被獲取,如果 是則舍棄,如果沒有被獲取,加入U(xiǎn)RL 二級(jí)緩沖隊(duì)列和DNS預(yù)取二級(jí)緩 沖隊(duì)列。返回(6.1)。
(6.3) DNS預(yù)取隊(duì)列從DNS —級(jí)緩沖隊(duì)列中取得數(shù)據(jù)。
(6.4) 首先判斷DNS預(yù)取隊(duì)列是否為空,如果為空,轉(zhuǎn)向(6.3)。如果不 為空,對(duì)DNS預(yù)取隊(duì)列中的URL所指向的域名進(jìn)行處理,如果該域名對(duì) 應(yīng)的IP地址已經(jīng)被獲取,即存在于DNS緩存中,則跳過繼續(xù)處理下一條記 錄,如果沒有被獲取,則發(fā)送請(qǐng)求獲取對(duì)應(yīng)的IP地址,并存放在NDS緩存 中,重復(fù)(6.4)直到(6.3)無法獲取數(shù)據(jù),DNS預(yù)取隊(duì)列為空為止。
本發(fā)明提出的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng)優(yōu)化了網(wǎng)頁爬取過程,對(duì) 于數(shù)據(jù)存放的形式也做了較好的處理。在爬行的過程中該爬蟲根據(jù)社會(huì)標(biāo) 注判斷相關(guān)性,從而緊密地圍繞著預(yù)定主題進(jìn)行爬行,提高了主題爬蟲的 速度以及獲取頁面的質(zhì)量。
以上所述為本發(fā)明的較佳實(shí)例而已,但本發(fā)明不應(yīng)該局限于該實(shí)例和 附圖所公開的內(nèi)容。所以,凡是不脫離本發(fā)明所公開的精神下完成的等效 或修改,都落入本發(fā)明保護(hù)的范圍。
20
權(quán)利要求
1、一種基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),該系統(tǒng)包括頁面獲取模塊(100),頁面處理模塊(200),相關(guān)度計(jì)算模塊(300),存儲(chǔ)模塊(400),鏈接提取模塊(500)和鏈接分析模塊(600);存儲(chǔ)模塊(400)用于存儲(chǔ)爬行過程中所獲取的頁面數(shù)據(jù);頁面獲取模塊(100)根據(jù)被獲取網(wǎng)站的機(jī)器人禁入?yún)f(xié)議文件、網(wǎng)絡(luò)帶寬的限制以及網(wǎng)頁優(yōu)先級(jí)的高低,利用網(wǎng)頁地址列表及其緩存進(jìn)行頁面爬取,并將爬取后的頁面?zhèn)魉徒o頁面處理模塊(200);頁面處理模塊(200)采用多線程并行處理,每個(gè)線程接受從頁面獲取模塊(100)傳過來的網(wǎng)頁,通過對(duì)比存儲(chǔ)模塊(400)內(nèi)的數(shù)據(jù),判斷該頁面是否已經(jīng)被獲取過,并將不重復(fù)的頁面?zhèn)魉徒o相關(guān)度計(jì)算模塊(300);相關(guān)度計(jì)算模塊(300)接收頁面處理模塊傳送過來的不重復(fù)頁面,從存儲(chǔ)模塊(400)獲取該頁面的社會(huì)標(biāo)注、上級(jí)頁面的社會(huì)標(biāo)注,以及鏈入該頁面的其他頁面與預(yù)定主題的相關(guān)度,綜合所有這些因素計(jì)算該頁面與預(yù)定主題的相關(guān)度,并將計(jì)算得到的相關(guān)度及頁面的相關(guān)信息存儲(chǔ)到存儲(chǔ)模塊(400)中,然后將滿足相關(guān)度要求的頁面?zhèn)魉徒o鏈接提取模塊(500);鏈接提取模塊(500)對(duì)滿足相關(guān)度要求的頁面進(jìn)行修復(fù),然后進(jìn)行頁面解析,將包含在頁面中的鏈接提取出來,再對(duì)鏈接進(jìn)行規(guī)范化處理,使其符合統(tǒng)一的格式,再傳送給鏈接處理模塊(600);鏈接處理模塊(600)用于進(jìn)行鏈接過濾,使鏈接地址符合預(yù)先設(shè)定的規(guī)則,該模塊還負(fù)責(zé)從接收到的鏈接中去掉已經(jīng)獲取過的鏈接,將待取鏈接地址進(jìn)行DNS的預(yù)取工作,并為鏈接和DNS緩存提供緩沖區(qū)。
2、 根據(jù)權(quán)利要求1所述的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),其特征在于 頁面獲取模塊(100)包括爬蟲配置模塊(110),待取鏈接隊(duì)列(120),域名解析 模塊(13Q),禮貌策略模塊(140),機(jī)器人禁入?yún)f(xié)議文件排除模塊(150),套接字連接獲取模塊(160),頁面處理模塊(170)和待取鏈接隊(duì)列一級(jí)緩存(180);爬蟲配置模塊(110)用于對(duì)爬蟲運(yùn)行時(shí)的各項(xiàng)參數(shù)進(jìn)行配置,爬蟲配置 文件包括最短間隔,爬行的深度、廣度和范圍,并將種子網(wǎng)頁地址列表提 供給待取鏈接隊(duì)列(120);待取鏈接隊(duì)列(120)用于存放待獲取的頁面的網(wǎng)頁地址,同時(shí)網(wǎng)頁地址 按照相關(guān)度在待取隊(duì)列中進(jìn)行排序,實(shí)時(shí)從待取鏈接隊(duì)列一級(jí)緩存(180)中 提取頁面的網(wǎng)頁地址進(jìn)行填充,并將網(wǎng)頁地址交由域名解析模塊(130);域名解析模塊(130)對(duì)接收的網(wǎng)頁地址進(jìn)行域名解析,獲取對(duì)應(yīng)的IP地 址,再轉(zhuǎn)交給禮貌策略模塊(140);禮貌策略模塊(140)對(duì)目標(biāo)網(wǎng)站的訪問速度進(jìn)行控制,對(duì)同一個(gè)主機(jī)的 訪問間隔大于等于配置的最短間隔的請(qǐng)求,轉(zhuǎn)交給機(jī)器人禁入?yún)f(xié)議文件排 除模塊(150),否則推遲訪問;機(jī)器人禁入?yún)f(xié)議文件排除模塊(150)遵循網(wǎng)站的要求,按照機(jī)器人禁入 協(xié)議文件中的描述進(jìn)行爬行,將允許被爬行的鏈接地址轉(zhuǎn)交給套接字連接獲取模塊(160);套接字連接獲取模塊(160)基于異步IO的獲取機(jī)制,發(fā)送獲取請(qǐng)求,當(dāng) 有頁面返回時(shí)轉(zhuǎn)交給頁面處理分配模塊(170);頁面處理分配模塊(170)采用固定線程池的方式對(duì)接收的頁面進(jìn)行分配 處理,接收到頁面后,從固定線程池中請(qǐng)求一個(gè)線程進(jìn)行處理,如果固定 線程池中沒有空閑線程,則在固定線程池的任務(wù)隊(duì)列中排隊(duì)等待處理;在 線程中將頁面交給頁面處理模塊(200)處理。
3、根據(jù)權(quán)利要求1或2所述的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),其特征 在于存儲(chǔ)模塊(400)主要包括信息存取模塊(410),數(shù)據(jù)備份模塊(420),網(wǎng) 頁信息存取接口(430),相關(guān)度信息存取接口(440),網(wǎng)頁鏈接信息存取接口 (450),社會(huì)標(biāo)注存取接口(460);網(wǎng)頁信息存取接口(430)負(fù)責(zé)按照選取的存儲(chǔ)方式在信息存取模塊(410)中存取網(wǎng)頁內(nèi)容;相關(guān)度信息存取接口(440)負(fù)責(zé)按照選取的存儲(chǔ)方式在信息存取模塊 (410)中存取網(wǎng)頁的相關(guān)度信息;網(wǎng)頁鏈接信息存取接口(450)負(fù)責(zé)按照選取的存儲(chǔ)方式在信息存取模塊 (410)中存取網(wǎng)頁之間的鏈接信息;社會(huì)標(biāo)注存取接口(460)負(fù)責(zé)按照選取的存儲(chǔ)方式在信息存取模塊(410) 中存取社會(huì)標(biāo)注;數(shù)據(jù)備份模塊(420)對(duì)信息存取模塊(410)中的存儲(chǔ)數(shù)據(jù)進(jìn)行備份。
4、 根據(jù)權(quán)利要求2所述的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),其特征在于: 鏈接處理模塊(600)包括鏈接過濾模塊(610),鏈接去重模塊(620), DNS預(yù)取模塊(630),機(jī)器人禁入?yún)f(xié)議文件預(yù)取模塊(640),待取鏈接隊(duì)列二級(jí)緩 沖(650);鏈接過濾模塊(610)根據(jù)爬蟲配置文件中爬行的深度、廣度、范圍對(duì)鏈 接進(jìn)行過濾,使爬蟲在設(shè)定的范圍內(nèi)爬行,將通過鏈接過濾的鏈接傳入鏈 接去重模塊(620);鏈接去重模塊(620)通過查詢網(wǎng)頁信息獲取接口(430),將已經(jīng)獲取過的 網(wǎng)頁地址鏈接舍棄,將沒有獲取過的網(wǎng)頁地址鏈接分別轉(zhuǎn)交給DNS預(yù)取模 塊(630)、機(jī)器人禁入?yún)f(xié)議文件預(yù)取模塊(640)以及待取鏈接隊(duì)列二級(jí)緩沖 (650);DNS預(yù)取模塊(630)接收來自鏈接去重模塊(620)傳入的鏈接地址,提前 獲取該地址中域名對(duì)應(yīng)的IP地址,并提供給域名解析模塊(130);機(jī)器人禁入?yún)f(xié)議文件預(yù)取模塊(640)接收來自鏈接去重模塊(620)傳入的 鏈接地址,提前獲得網(wǎng)站的機(jī)器人禁入?yún)f(xié)議文件并存放在緩存中,并提供 給機(jī)器人禁入?yún)f(xié)議文件排除模塊(150);待取鏈接隊(duì)列二級(jí)緩存(650)接收鏈接去重模塊(620)傳入的鏈接地址, 并一次性寫入待取鏈接隊(duì)列一級(jí)緩存(180)。
5、 根據(jù)權(quán)利要求3所述的基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),其特征在于相關(guān)度計(jì)算模塊(300)包括下述處理過程第1步接收頁面處理模塊(200)傳入的頁面,由社會(huì)標(biāo)注存取接口(460) 獲取其社會(huì)標(biāo)注;第2步分析獲取該頁面上兩級(jí)頁面的社會(huì)標(biāo)注以及鏈入該頁面的其 他頁面的社會(huì)標(biāo)注;第3步按照公式(I)計(jì)算得到頁面p的主題相關(guān)度i (;p):其中及ro) = rop"(&4(/^(/7)))式中,F(xiàn) (p)表示頁面p的上級(jí)頁面,SA (p)表示頁面p的社會(huì)標(biāo) 注,SA (F (p).)表示頁面p的上級(jí)頁面的社會(huì)標(biāo)注,SA (F (F (p)))表示頁面p的上二級(jí)頁面的社會(huì)標(biāo)注,ILs (p)表示頁面p的鏈入鏈接集合, RA W,O表示社會(huì)標(biāo)注i與主題描述d的相關(guān)度;Z ^W,0表示頁面P的 社會(huì)標(biāo)注與主題的相關(guān)度,而S W(W), J] iL4(rf,/)表示p繼承了上兩級(jí)頁面的社會(huì)標(biāo)注所得到的相關(guān)度,i: /m(",/)表示頁面p繼承了鏈入頁面集合的社會(huì)標(biāo)注所得到的相關(guān)度;",",p, 5為衰減因子,a > P >爐> 5 ; rOiU&4(/Ly(p》)表示p的鏈入頁面集合中出現(xiàn)次數(shù)最多的n個(gè)標(biāo)注,n的^值范圍在(3,6);第4步將計(jì)算所得主題相關(guān)度與設(shè)定的主題相關(guān)度閾值進(jìn)行比較, 大于設(shè)定值則判定為相關(guān),否則為不相關(guān);第5步將計(jì)算結(jié)果通過相關(guān)度存取接口(440)進(jìn)行存儲(chǔ),并將被判定 為相關(guān)的頁面?zhèn)鹘o鏈接提取模塊(500)處理。
全文摘要
一種基于社會(huì)標(biāo)注的主題爬蟲系統(tǒng),包括頁面獲取模塊,頁面處理模塊,相關(guān)度計(jì)算模塊,存儲(chǔ)模塊,鏈接提取模塊和鏈接分析模塊。系統(tǒng)充分利用了網(wǎng)頁的社會(huì)標(biāo)注,是對(duì)頁面內(nèi)容公認(rèn)的描述,更加貼近網(wǎng)頁描述的真實(shí)內(nèi)容,利用此性質(zhì)來進(jìn)行網(wǎng)頁相關(guān)性的判斷,將其應(yīng)用在網(wǎng)絡(luò)主題爬蟲中,指導(dǎo)爬蟲的爬行方向,對(duì)主題搜索引擎提供優(yōu)質(zhì)的網(wǎng)頁數(shù)據(jù)內(nèi)容。本發(fā)明很好地利用了網(wǎng)絡(luò)帶寬資源,在網(wǎng)頁獲取的過程中減少了不必要的開銷,針對(duì)不同的需求采用不同的存儲(chǔ)方式,減少了IO的消耗,采用了多級(jí)緩存機(jī)制,減少了阻塞,提高了爬蟲的效率。該系統(tǒng)在社會(huì)標(biāo)注的支撐下,優(yōu)化了爬蟲架構(gòu),為后續(xù)主題搜索引擎其他處理流程提供最佳的網(wǎng)頁數(shù)據(jù)集。
文檔編號(hào)G06F17/30GK101561814SQ200910062020
公開日2009年10月21日 申請(qǐng)日期2009年5月8日 優(yōu)先權(quán)日2009年5月8日
發(fā)明者丁益斌, 盧正鼎, 文坤梅, 李瑞軒, 勇 趙, 辜希武, 靳延安 申請(qǐng)人:華中科技大學(xué)