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

分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置制造方法

文檔序號:6638898閱讀:218來源:國知局
分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置,其中,該方法包括:解析下載的網(wǎng)頁得到網(wǎng)頁資源地址;對網(wǎng)頁資源地址進行哈希計算得到第一哈希值;按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置;在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過;若網(wǎng)頁資源地址被爬取過,則丟棄網(wǎng)頁資源地址;若網(wǎng)頁資源地址未被爬取過,則保存網(wǎng)頁資源地址至待爬取隊列。采用本發(fā)明,解決了現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,從而達到了對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的快速存儲和高效查詢的效果。
【專利說明】分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置。

【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰(zhàn)。
[0003]網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,是搜索引擎的重要組成,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁。但是,在面對海量的網(wǎng)頁信息時,用一臺機器進行網(wǎng)絡(luò)爬蟲抓取所有網(wǎng)頁信息是不可能的,但是為了抓取所有網(wǎng)頁信息,往往是將網(wǎng)絡(luò)爬蟲分布到多個機器集群上,這時就需要防止機器重復爬取。
[0004]為了防止重復爬取,分布式爬蟲在爬取的過程中需要記錄爬蟲的爬取歷史URL,當下載網(wǎng)頁并解析URL(統(tǒng)一資源定位符,即網(wǎng)頁資源地址)后,查看當前網(wǎng)頁的網(wǎng)頁資源地址是否已經(jīng)存在于歷史網(wǎng)頁資源地址隊列中。分布式爬蟲在爬取的過程中需要記錄爬蟲的爬取歷史網(wǎng)頁資源地址,當下載網(wǎng)頁并解析網(wǎng)頁資源地址后,查看其是否存在于歷史網(wǎng)頁資源地址隊列中,若存在,則丟棄,否則就將其存放到待爬取隊列。因此,在分布式系統(tǒng)中,涉及到在分布式系統(tǒng)中網(wǎng)頁資源地址解析后網(wǎng)頁資源地址存儲和分配結(jié)點的問題。
[0005]目前的分布式系統(tǒng)主要分為有兩種實現(xiàn)方式,第一種采用集中控制的方式,由集中控制中心來存貯URL歷史隊列信息及URL待爬取隊列信息,通過hash算法將待爬去隊列信息映射到各個結(jié)點中。第二種采用的是P2P的方式,無控制中心的方式,該方式將各節(jié)點抓取的URL歷史信息直接存放在本節(jié)點中,該方式下,在URL分配上,傳統(tǒng)的解決方式使用的是根據(jù)結(jié)點的數(shù)量進行hash取模運算。
[0006]與此同時,在URL歷史信息的上,傳統(tǒng)的存儲方式有以下幾種:將訪問的URL保存到數(shù)據(jù)庫;用Hash表將訪問過的URL保存起來;Bit-Map方法,將每個URL經(jīng)過一個hash函數(shù)映射到某一位。
[0007]在集中控制的分布式爬蟲系統(tǒng)中,因爬蟲歷史URL隊列和帶爬取的隊列存儲在中心節(jié)點上,同時URL的分配也受控制中心協(xié)調(diào),爬蟲受控制中心失效的影響。在P2P方式中,在分配URL時,使用Hash存儲的方式,在增刪結(jié)點時,會破壞原有的映射關(guān)系。
[0008]在歷史URL的存儲方式上:在數(shù)據(jù)量非常龐大時,存在查詢效率問題;在URL不斷增長時,會大量消耗內(nèi)存空間。
[0009]針對現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,目如尚未提出有效的解決方案。


【發(fā)明內(nèi)容】

[0010]本發(fā)明的主要目的在于提供一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法和裝置,以解現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法,該方法包括:解析下載的網(wǎng)頁得到網(wǎng)頁資源地址;對網(wǎng)頁資源地址進行哈希計算得到第一哈希值;按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置;在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過;若網(wǎng)頁資源地址被爬取過,則丟棄網(wǎng)頁資源地址;若網(wǎng)頁資源地址未被爬取過,則保存網(wǎng)頁資源地址至待爬取隊列。
[0012]進一步地,按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置包括:檢測數(shù)據(jù)表中是否存在第一哈希值;若數(shù)據(jù)表中不存在第一哈希值,則查詢數(shù)據(jù)表中比第一哈希值大的值中最小的第二哈希值,讀取第二哈希值對應的第一存儲位置;若數(shù)據(jù)表中不存在第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為第一存儲位置;若數(shù)據(jù)表中存在第一哈希值,則讀取第一哈希值的第一存儲位置;將網(wǎng)頁資源地址存儲至第一存儲位置。
[0013]進一步地,在按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置之后,處理方法包括:讀取第一存儲位置的第一 IP地址;在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過包括:在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值;判斷多個第三哈希值對應的第二存儲位置上是否已存儲網(wǎng)頁資源地址;若多個第二存儲位置上均已存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址已被爬取過;若多個第二存儲位置上未均存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址未被爬取過。
[0014]進一步地,在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,處理方法包括:判斷第一 IP地址是否為第二物理結(jié)點的IP地址,其中,第二物理結(jié)點為解析網(wǎng)頁的物理結(jié)點;若第一 IP地址為第二物理結(jié)點的IP地址,則將第二物理結(jié)點確定為第一物理結(jié)點;若第一 IP地址不為第二物理結(jié)點的IP地址,則將網(wǎng)頁資源地址發(fā)送至第一 IP地址對應的第一物理結(jié)點。
[0015]進一步地,將網(wǎng)頁資源地址存儲至第一存儲位置包括:將網(wǎng)頁資源地址分配至第三存儲位置,其中,第三存儲位置為虛擬結(jié)點的存儲位置;通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系確定第一存儲位置;將網(wǎng)頁資源地址存儲至第一存儲位置。
[0016]進一步地,在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,處理方法包括:對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值;使用第四哈希值確定物理結(jié)點的虛擬結(jié)點的子哈希值;按照第四哈希值為物理結(jié)點分配第四存儲位置,并按照子哈希值為虛擬結(jié)點分配第五存儲位置;建立第四存儲位置、第五存儲位置與IP地址的映射關(guān)系得到數(shù)據(jù)表。
[0017]為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的另一方面,提供了一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理裝置,該處理裝置包括:解析模塊,用于解析下載的網(wǎng)頁得到網(wǎng)頁資源地址;第一計算模塊,用于對網(wǎng)頁資源地址進行哈希計算得到第一哈希值;存儲模塊,用于按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置;第一判斷模塊,用于在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過;第一確定模塊,用于若網(wǎng)頁資源地址被爬取過,則丟棄網(wǎng)頁資源地址;第二確定模塊,用于若網(wǎng)頁資源地址未被爬取過,則保存網(wǎng)頁資源地址至待爬取隊列。
[0018]進一步地,存儲模塊包括:檢測模塊,用于檢測數(shù)據(jù)表中是否存在第一哈希值;查詢模塊,用于若數(shù)據(jù)表中不存在第一哈希值,則查詢數(shù)據(jù)表中比第一哈希值大的值中最小的第二哈希值,讀取第二哈希值對應的第一存儲位置;轉(zhuǎn)換模塊,用于若數(shù)據(jù)表中不存在第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為第一存儲位置;第三確定模塊,用于若數(shù)據(jù)表中存在第一哈希值,則讀取第一哈希值的第一存儲位置;第一存儲子模塊,用于將網(wǎng)頁資源地址存儲至第一存儲位置。
[0019]進一步地,處理裝置包括讀取模塊,用于在按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置之后,讀取第一存儲位置的第一 IP地址;第一判斷模塊包括:第二計算模塊,用于在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值;第一判斷子模塊,用于判斷多個第三哈希值對應的第二存儲位置上是否已存儲網(wǎng)頁資源地址;第四確定模塊,用于若多個第二存儲位置上均已存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址已被爬取過;第五確定模塊,用于若多個第二存儲位置上未均存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址未被爬取過。
[0020]進一步地,處理裝置包括:第二判斷模塊,用于在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,判斷第一 IP地址是否為第二物理結(jié)點的IP地址,其中,第二物理結(jié)點為解析網(wǎng)頁的物理結(jié)點;第六確定模塊,用于若第一 IP地址為第二物理結(jié)點的IP地址,則將第二物理結(jié)點確定為第一物理結(jié)點;第七確定模塊,用于若第一 IP地址不為第二物理結(jié)點的IP地址,則將網(wǎng)頁資源地址發(fā)送至第一 IP地址對應的第一物理結(jié)點。
[0021]進一步地,第一存儲子模塊包括:第一分配模塊,用于將網(wǎng)頁資源地址分配至第三存儲位置,其中,第三存儲位置為虛擬結(jié)點的存儲位置;映射模塊,用于通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系確定第一存儲位置;第二存儲子模塊,用于將網(wǎng)頁資源地址存儲至第一存儲位置。
[0022]進一步地,處理裝置包括:第三計算模塊,用于在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值;第八確定模塊,用于使用第四哈希值確定物理結(jié)點的虛擬結(jié)點的子哈希值;第二分配模塊,用于按照第四哈希值為物理結(jié)點分配第四存儲位置,并按照子哈希值為虛擬結(jié)點分配第五存儲位置;建立模塊,用于建立第四存儲位置、第五存儲位置與IP地址的
[0023]采用本發(fā)明,在爬蟲抓取網(wǎng)頁資源信息時,判斷該網(wǎng)頁資源信息是否被爬取過,具體地,解析該網(wǎng)頁資源地址,然后將該網(wǎng)頁資源地址數(shù)據(jù)進行哈希計算得到第一哈希值,再按照第一哈希值將網(wǎng)頁資源地址分配到第一存儲位置,然后在第一存儲位置所對應的第一物理結(jié)點上判斷該網(wǎng)頁資源地址是否被爬取過,若判斷出該網(wǎng)頁資源地址被爬取過則丟棄該網(wǎng)頁資源地址,若該網(wǎng)頁資源地址沒有被爬取過,則將該網(wǎng)頁資源地址存儲到待爬取隊列。采用本發(fā)明,解決了現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,從而達到了對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的快速存儲和高效查詢的效果O

【專利附圖】

【附圖說明】
[0024]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0025]圖1是根據(jù)本發(fā)明實施例的分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法的流程圖;
[0026]圖2是根據(jù)本發(fā)明實施例的一個可選的為網(wǎng)頁資源地址分配存儲位置的示意圖;
[0027]圖3是根據(jù)本發(fā)明實施例的一個可選的分布式系統(tǒng)爬蟲結(jié)構(gòu)示意圖;
[0028]圖4是根據(jù)本發(fā)明實施例的一個可選的布隆濾波器算法判斷URL是否被爬取過的處理示意圖;
[0029]圖5是根據(jù)本發(fā)明實施例的虛擬結(jié)點與物理結(jié)點對應關(guān)系的示意圖;以及
[0030]圖6是根據(jù)本發(fā)明實施例的分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理裝置的示意圖。

【具體實施方式】
[0031]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0032]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
[0033]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0034]本發(fā)明實施例提供了一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法。
[0035]圖1是根據(jù)本發(fā)明實施例的分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法的流程圖。如圖1所示,該方法可以包括步驟如下:
[0036]步驟S102,解析下載的網(wǎng)頁得到網(wǎng)頁資源地址。
[0037]步驟S104,對網(wǎng)頁資源地址進行哈希計算得到第一哈希值。
[0038]步驟S106,按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置。
[0039]步驟S108,在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過。
[0040]步驟S110,若網(wǎng)頁資源地址被爬取過,則丟棄網(wǎng)頁資源地址。
[0041]步驟S112,若網(wǎng)頁資源地址未被爬取過,則保存網(wǎng)頁資源地址至待爬取隊列。
[0042]采用本發(fā)明,在爬蟲抓取網(wǎng)頁資源信息時,判斷該網(wǎng)頁資源信息是否被爬取過,具體地,解析該網(wǎng)頁資源地址,然后將該網(wǎng)頁資源地址數(shù)據(jù)進行哈希計算得到第一哈希值,再按照第一哈希值將網(wǎng)頁資源地址分配到第一存儲位置,然后在第一存儲位置所對應的第一物理結(jié)點上判斷該網(wǎng)頁資源地址是否被爬取過,若判斷出該網(wǎng)頁資源地址被爬取過則丟棄該網(wǎng)頁資源地址,若該網(wǎng)頁資源地址沒有被爬取過,則將該網(wǎng)頁資源地址存儲到待爬取隊列。采用本發(fā)明,解決了現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,從而達到了對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的快速存儲和高效查詢的效果O
[0043]其中,在上述實施例中,步驟S104中,對網(wǎng)頁資源地址進行哈希計算得到第一哈希值,可以通過一致性哈希算法實現(xiàn),使用一致性哈希算法可以保證映射關(guān)系的一致性??蛇x地,如圖2所示,可以將對應的URL和結(jié)點的IP地址映射到0-232的環(huán)形空間中,來保證映射關(guān)系的一致性。
[0044]具體地,對所有機器結(jié)點(即第一物理結(jié)點)的IP地址進行Hash計算,根據(jù)計算的結(jié)果值,將其分配到對應的位置上,同時建立結(jié)點位置與IP地址的映射關(guān)系。如圖2所示,分別對第一物理結(jié)點Nodel,Node2和Node3的IP地址進行一致性Hash運算后的位置值(即第二哈希值)為KEYl,KEY2和KEY3,并定義字典保存KEYl,KEY2與KEY3對應的IP地址映射關(guān)系。
[0045]在圖3所示的實施例中,在每個第一物理結(jié)點(如Node K Node 2以及Node 3)下載新的頁面,然后對下載的頁面解析出新的URL鏈接(統(tǒng)一資源定位符,即上述的網(wǎng)絡(luò)資源地址),然后將其與URL歷史隊列中的URL比較,若該新的URL未被爬取過,則將其保存入URL待爬取隊列,若該新的URL不是本機(即IP地址不是本機IP地址),則將其通過URL發(fā)送器發(fā)送至對應的第一物理結(jié)點,當然,每個物理結(jié)點還可以通過URL接收器接收來自其他第一物理結(jié)點的URL。
[0046]根據(jù)本發(fā)明的上述實施例,按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置可以包括:檢測數(shù)據(jù)表中是否存在第一哈希值;若數(shù)據(jù)表中不存在第一哈希值,則查詢數(shù)據(jù)表中比第一哈希值大的值中最小的第二哈希值,讀取第二哈希值對應的第一存儲位置;若數(shù)據(jù)表中不存在第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為第一存儲位置;若數(shù)據(jù)表中存在第一哈希值,則讀取第一哈希值的第一存儲位置;將網(wǎng)頁資源地址存儲至第一存儲位置。
[0047]下面結(jié)合圖2詳述上述實施例,如圖2所示,數(shù)據(jù)表中第二哈希值KEYl對應的是第一物理結(jié)點Nodel,數(shù)據(jù)表中第二哈希值KEY2和KEY3對應的第一物理結(jié)點分別是Node2和Node3。其中,KEY1、KEEY2以及KEY3可以是預存在數(shù)據(jù)表(可以是字典)中的數(shù)據(jù)。若獲取到一個新的網(wǎng)頁資源地址0bject2,則對其做哈希運算得到第一哈希值key2,然后放入數(shù)據(jù)表中作對比,經(jīng)檢測該第一哈希值與數(shù)據(jù)表中KEYl、KEY2以及KEY3均不相同,但是檢測到數(shù)據(jù)表中大于第一哈希值key2的第二哈希值中最小的為KEY1,則將key2對應的網(wǎng)頁資源地址放入第二哈希值KEYl對應的第一物理結(jié)點Nodel所對應的第一存儲位置;同樣地,對網(wǎng)頁資源地址Ob ject4進行一致性哈希計算得到的第一哈希值key4對應第二哈希值KEY3,則將其保存入對應的第一物理結(jié)點Node3 ;對網(wǎng)頁資源地址Ob ject3進行一致性哈希計算得到的第一哈希值key3對應第二哈希值KEY2,則將其保存入對應的第一物理結(jié)點Node20
[0048]在上述實施例中,使用網(wǎng)頁資源地址Objectl進行一致性Hash運算后生成的第一哈希值keyl,在上述的字典中查找對應的第二哈希值KEY,若第一哈希值keyl在字典中,則取出其對應的IP地址(也即第一物理結(jié)點的地址),不存在則找到第一個比第一哈希值keyl大的結(jié)點位置值,找到最大位置處,將其保存入最大位置處;若未能找到最大位置處,則將其分配給O結(jié)點(即上述的預設(shè)結(jié)點),并取出O結(jié)點對應的IP地址(即預設(shè)結(jié)點的預設(shè)位置),如圖3中,若無法找到對應網(wǎng)頁資源地址Objectl的第一哈希值keyl的第二哈希值,則將其順時針存放到Nodel中。
[0049]根據(jù)本發(fā)明的上述實施例,通過第一哈希值與第一物理結(jié)點的映射關(guān)系,可以將多個網(wǎng)頁資源地址存儲在同一第一物理結(jié)點所對應的第一存儲位置,從而解決了現(xiàn)有技術(shù)中大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲問題,而且通過這種映射關(guān)系,使得網(wǎng)頁資源地址能夠被快速查詢到。
[0050]在本方面的上述實施例中,在按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置之后,處理方法可以包括:讀取第一存儲位置的第一 IP地址。
[0051]在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過可以包括:在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值;判斷多個第三哈希值對應的第二存儲位置上是否已存儲網(wǎng)頁資源地址;若多個第二存儲位置上均已存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址已被爬取過;若多個第二存儲位置上未均存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址未被爬取過。
[0052]如圖4所示,可以通過布隆過濾器算法來判斷URL是否已經(jīng)爬取過。首先對URL通過預設(shè)的哈希函數(shù)進行運算(如圖4所示可以通過哈希函數(shù)1、哈希函數(shù)2、哈希函數(shù)3、……、和哈希函數(shù)N計算),對每個hash函數(shù)運算后的值判斷其在對應位置是否為I (該值可以表示在該位置上是否存儲有該網(wǎng)絡(luò)資源地址):若不都為1,則表示未爬取過,且未存放到URL待爬取隊列,并將運算后的對應位置置為1,將其放到待爬取隊列中;若運算后對應位置都為I則表示其已抓取,丟棄該URL。
[0053]如圖4所示的實施例,通過哈希函數(shù)1、哈希函數(shù)2、哈希函數(shù)3和哈希函數(shù)N計算得到的值分別為5、11、6和15 (圖中的I至18可以為位數(shù)組),若存儲位置5、存儲位置11、存儲位置6和存儲位置15上均為1,表示該網(wǎng)絡(luò)資源地址被爬取過;若存儲位置5、存儲位置11、存儲位置6和存儲位置15上不均為1,表示該網(wǎng)絡(luò)資源地址未被爬取過。
[0054]在該實施例中,可以在歷史URL的存儲上采用bloomfilter算法(即布隆過濾器算法)將其映射到位數(shù)組空間中,能夠很好地解決大規(guī)模數(shù)據(jù)時存儲空間,提高查詢效率。
[0055]在本發(fā)明的上述實施例中,使用多個哈希函數(shù)對該IP所對應的網(wǎng)頁資源地址進行哈希運算,從而得到多個第三哈希值,若多個第三哈希值對應的第二存儲位置均已經(jīng)存儲有網(wǎng)頁資源地址則判斷出該網(wǎng)頁資源地址已經(jīng)被爬取過;若多個第三哈希值對應的第二存儲位置不均存儲有網(wǎng)頁資源地址則判斷出該網(wǎng)頁資源地址未被爬取過,則將該網(wǎng)頁資源地址放入待爬取隊列。通過對網(wǎng)頁資源地址的哈希運算,能夠快速判斷該網(wǎng)頁資源地址是否被爬取過,從而提高了對網(wǎng)頁資源地址的查詢效率。
[0056]根據(jù)本發(fā)明的上述實施例,在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,處理方法可以包括:判斷第一 IP地址是否為第二物理結(jié)點的IP地址,其中,第二物理結(jié)點為解析網(wǎng)頁的物理結(jié)點;若第一 IP地址為第二物理結(jié)點的IP地址,則將第二物理結(jié)點確定為第一物理結(jié)點;若第一IP地址不為第二物理結(jié)點的IP地址,則將網(wǎng)頁資源地址發(fā)送至第一 IP地址對應的第一物理結(jié)點。
[0057]在本發(fā)明的上述實施例中,在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,判斷第一 IP地址是否為第二物理結(jié)點(即本機)的IP地址,若第一 IP地址是本機IP地址,則在本機上執(zhí)行布隆過濾器算法;若否則通過URL發(fā)送器將其發(fā)送至對應的物理結(jié)點上執(zhí)行布隆過濾器算法。
[0058]具體地,發(fā)送URL時,以JSON為數(shù)據(jù)傳輸格式,將URL信息遞交給socket發(fā)送線程,由其發(fā)送到IP地址對應的物理結(jié)點中,每個物理結(jié)點的URL接收器均可以通過單獨線程監(jiān)聽socket連接,當有新消息到達時,接下來對URL的執(zhí)行布隆過濾器算法。
[0059]在本發(fā)明的上述實施例中,在對網(wǎng)頁資源地址進行處理之前,需要對第一 IP地址做判斷,若該第一 IP地址與第二物理結(jié)點的IP地址相同,則將第二物理結(jié)點作為第一物理結(jié)點,若該第一 IP地址與第二物理結(jié)點的IP地址不同,則將網(wǎng)頁資源地址發(fā)送到第一 IP地址對應的第一物理結(jié)點。經(jīng)過上述判斷,可以判斷出該網(wǎng)頁資源地址對應的哈希值在預設(shè)數(shù)據(jù)表中的大概位置,為下一步對該網(wǎng)頁資源地址的具體查詢縮小查詢范圍。
[0060]在本方面的上述實施例中,將網(wǎng)頁資源地址存儲至第一存儲位置可以包括:將網(wǎng)頁資源地址分配至第三存儲位置,其中,第三存儲位置為虛擬結(jié)點的存儲位置;通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系確定第一存儲位置;將網(wǎng)頁資源地址存儲至第一存儲位置。
[0061]根據(jù)本發(fā)明的上述實施例,在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,處理方法可以包括:對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值;使用第四哈希值確定物理結(jié)點的虛擬結(jié)點的子哈希值;按照第四哈希值為物理結(jié)點分配第四存儲位置,并按照子哈希值為虛擬結(jié)點分配第五存儲位置;建立第四存儲位置、第五存儲位置與IP地址的映射關(guān)系得到數(shù)據(jù)表。
[0062]下面結(jié)合圖5詳述本發(fā)明的上述實施例,圖5是根據(jù)本發(fā)明實施例的將網(wǎng)頁資源地址存儲至第一存儲位置的示意圖。如圖5所示,將網(wǎng)頁資源地址Objectl對應的第一IP地址做哈希運算,根據(jù)上述哈希運算得到的值確定網(wǎng)頁資源地址Objectl對應的虛擬結(jié)點,然后再根據(jù)虛擬結(jié)點確定網(wǎng)頁資源地址Objectl對應的第一物理結(jié)點,然后由第一物理結(jié)點確定網(wǎng)頁資源地址的第一存儲位置。通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系實現(xiàn)了對網(wǎng)頁資源地址的高效穩(wěn)定存儲,同時使得在預設(shè)數(shù)據(jù)表中插入新的網(wǎng)頁資源地址不會破壞已存在的網(wǎng)頁資源地址,使得預設(shè)數(shù)據(jù)能夠快速擴展。
[0063]在本發(fā)明的上述實施例中,由圖2可知,若第一物理結(jié)點較少時,從圖2中移除第一物理結(jié)點就會存在分布不不均勻的問題,從而影響存儲質(zhì)量和查詢效率,這時通過為每個第一物理結(jié)點增加多個虛擬結(jié)點,并建立虛擬結(jié)點到物理結(jié)點的映射關(guān)系,以解決第一物理結(jié)點分布不均勻的問題。
[0064]如圖5所示,圖5中的虛擬結(jié)點的哈希計算方式以第一 IP地址加上對應的虛擬結(jié)點后做哈希運算,并將虛擬結(jié)點計算后的第一物理結(jié)點映射到圖2中。網(wǎng)頁資源地址進行哈希運算后被分配到虛擬結(jié)點的位置,通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系,存放到對應的第一物理結(jié)點中,虛擬結(jié)點到第一物理結(jié)點的映射如圖5所示。通過建立虛擬結(jié)點與第一物理結(jié)點的映射,引入虛擬結(jié)點來保證在結(jié)點較少的情況下,負載均衡的問題,提高了存儲的效率,同時提高了對網(wǎng)頁資源地址查詢效率。
[0065]具體地,如圖5所示的實施例,包括三個物理結(jié)點(物理結(jié)點N1、物理結(jié)點N2和物理結(jié)點N3)和六個虛擬結(jié)點Vl至V6,其中,虛擬結(jié)點Vl和V2對應物理結(jié)點NI,虛擬結(jié)點V3和V4對應物理結(jié)點N2,虛擬結(jié)點V5和V6對應物理結(jié)點N3。如圖5所示的實施例,將網(wǎng)頁資源地址Objectl和0bject2進行一致性哈希運算后,對應到虛擬結(jié)點V2和虛擬結(jié)點V5,并進一步獲取物理結(jié)點NI和N3。
[0066]本發(fā)明上述實施例,通過一致性hash來解決分布式系統(tǒng)中結(jié)點增加時,已分配的內(nèi)容可以被映射到原有的或者新的結(jié)點中,保證了一致性,同時在結(jié)點刪除時,能夠?qū)⒃摻Y(jié)點中的內(nèi)容移到相鄰結(jié)點,從而保證其它結(jié)點不發(fā)生變化;同時引入虛擬結(jié)點,將一個物理節(jié)點與多個虛擬結(jié)點進行映射,對虛擬結(jié)點進行hash運算,保證了結(jié)點少時的負載均衡的問題;并且,在歷史URL的存儲上使用bloomfilter算法來記錄已爬取的URL狀態(tài)信息,壓縮了存儲空間,提高查詢效率。
[0067]進一步地,待爬取URL的分配上使用了一致性Hash算法來保證分布式系統(tǒng)中在增刪結(jié)點時滿足的映射的一致性及分散性,當過引入在物理結(jié)點上引入虛擬結(jié)點來解決負載均衡的問題。
[0068]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0069]圖6是根據(jù)本發(fā)明實施例的分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理裝置的示意圖。如圖6所示,該裝置可以包括如下模塊:解析模塊10、第一計算模塊20、存儲模塊30、第一判斷模塊40、第一確定模塊50以及第二確定模塊60。
[0070]其中,解析模塊10,用于解析下載的網(wǎng)頁得到網(wǎng)頁資源地址;第一計算模塊20,用于對網(wǎng)頁資源地址進行哈希計算得到第一哈希值;存儲模塊30,用于按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置;第一判斷模塊40,用于在第一存儲位置對應的第一物理結(jié)點上判斷網(wǎng)頁資源地址是否被爬取過;第一確定模塊50,用于若網(wǎng)頁資源地址被爬取過,則丟棄網(wǎng)頁資源地址;第二確定模塊60,用于若網(wǎng)頁資源地址未被爬取過,則保存網(wǎng)頁資源地址至待爬取隊列。
[0071]采用本發(fā)明,在爬蟲抓取網(wǎng)頁資源信息時,需要判斷該網(wǎng)頁資源信息是否被爬取過,解析模塊解析該網(wǎng)頁資源地址,然后第一計算模塊將該網(wǎng)頁資源地址數(shù)據(jù)進行哈希計算得到第一哈希值,再按照第一哈希值將網(wǎng)頁資源地址分配到第一存儲位置,然后第一判斷模塊在第一存儲位置所對應的第一物理結(jié)點上判斷該網(wǎng)頁資源地址是否被爬取過,若第一確定模塊判斷出該網(wǎng)頁資源地址被爬取過則丟棄該網(wǎng)頁資源地址,若第二確定模塊判斷出該網(wǎng)頁資源地址沒有被爬取過,則將該網(wǎng)頁資源地址存儲到待爬取隊列。采用本發(fā)明,解決了現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,從而達到了對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的快速存儲和高效查詢的效果。
[0072]在上述實施例中,對網(wǎng)頁資源地址進行哈希計算得到第一哈希值,可以通過一致性哈希算法實現(xiàn),使用一致性哈希算法可以保證映射關(guān)系的一致性。
[0073]根據(jù)本發(fā)明的上述實施例,對所有機器結(jié)點(即第一物理結(jié)點)的IP地址進行Hash計算,根據(jù)計算的結(jié)果值,將其分配到對應的位置上,同時建立結(jié)點位置與IP地址的映射關(guān)系。如圖2所示,分別對第一物理結(jié)點Nodel,Node2和Node3的IP地址進行一致性Hash運算后的位置值(即第二哈希值)為KEY1,KEY2和KEY3,并定義字典保存KEY1,KEY2與KEY3對應的IP地址映射關(guān)系。
[0074]在圖3所示的實施例中,在每個第一物理結(jié)點(如Node K Node 2以及Node 3)下載新的頁面,然后對下載的頁面解析出新的URL鏈接(統(tǒng)一資源定位符,即上述的網(wǎng)絡(luò)資源地址),然后將其與URL歷史隊列中的URL比較,若該新的URL未被爬取過,則將其保存入URL待爬取隊列,若該新的URL不是本機(即IP地址不是本機IP地址),則將其通過URL發(fā)送器發(fā)送至對應的第一物理結(jié)點,當然,每個物理結(jié)點還可以通過URL接收器接收來自其他第一物理結(jié)點的URL。
[0075]在本發(fā)明的上述實施例中,存儲模塊可以包括:檢測模塊,用于檢測數(shù)據(jù)表中是否存在第一哈希值;查詢模塊,用于若數(shù)據(jù)表中不存在第一哈希值,則查詢數(shù)據(jù)表中比第一哈希值大的值中最小的第二哈希值,讀取第二哈希值對應的第一存儲位置;轉(zhuǎn)換模塊,用于若數(shù)據(jù)表中不存在第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為第一存儲位置;第三確定模塊,用于若數(shù)據(jù)表中存在第一哈希值,則讀取第一哈希值的第一存儲位置;第一存儲子模塊,用于將網(wǎng)頁資源地址存儲至第一存儲位置。
[0076]采用上述實施例,通過第一哈希值與第一物理結(jié)點的映射關(guān)系,可以將多個網(wǎng)頁資源地址存儲在同一第一物理結(jié)點所對應的第一存儲位置,從而解決了現(xiàn)有技術(shù)中大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲問題,而且通過這種映射關(guān)系,使得網(wǎng)頁資源地址能夠被快速查詢到。
[0077]根據(jù)本發(fā)明的上述實施例,該處理裝置還可以包括:讀取模塊,用于在按照第一哈希值將網(wǎng)頁資源地址分配至對應的第一存儲位置之后,讀取第一存儲位置的第一 IP地址。
[0078]在本發(fā)明的上述實施例中,第一判斷模塊可以包括:第二計算模塊,用于在第一IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值;第一判斷子模塊,用于判斷多個第三哈希值對應的第二存儲位置上是否已存儲網(wǎng)頁資源地址;第四確定模塊,用于若多個第二存儲位置上均已存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址已被爬取過;第五確定模塊,用于若多個第二存儲位置上未均存儲網(wǎng)頁資源地址,則確定網(wǎng)頁資源地址未被爬取過。
[0079]通過上述實施例,對網(wǎng)頁資源地址的哈希運算,能夠快速判斷該網(wǎng)頁資源地址是否被爬取過,從而提高了對網(wǎng)頁資源地址的查詢效率。
[0080]根據(jù)本發(fā)明的上述實施例,處理裝置還可以包括:第二判斷模塊,用于在第一 IP地址的第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,判斷第一 IP地址是否為第二物理結(jié)點的IP地址,其中,第二物理結(jié)點為解析網(wǎng)頁的物理結(jié)點;第六確定模塊,用于若第一 IP地址為第二物理結(jié)點的IP地址,則將第二物理結(jié)點確定為第一物理結(jié)點;第七確定模塊,用于若第一 IP地址不為第二物理結(jié)點的IP地址,則將網(wǎng)頁資源地址發(fā)送至第一 IP地址對應的第一物理結(jié)點。
[0081]通過上述實施例,可以判斷出該網(wǎng)頁資源地址對應的哈希值在預設(shè)數(shù)據(jù)表中的大概位置,為下一步對該網(wǎng)頁資源地址的具體查詢縮小查詢范圍,提高查詢效率。
[0082]在本發(fā)明的上述實施例中,第一存儲子模塊可以包括:第一分配模塊,用于將網(wǎng)頁資源地址分配至第三存儲位置,其中,第三存儲位置為虛擬結(jié)點的存儲位置;映射模塊,用于通過虛擬結(jié)點與第一物理結(jié)點的映射關(guān)系確定第一存儲位置;第二存儲子模塊,用于將網(wǎng)頁資源地址存儲至第一存儲位置。
[0083]在本發(fā)明的上述實施例中,將一個第一物理結(jié)點與多個虛擬結(jié)點進行映射,解決分布式系統(tǒng)中增加第一物理結(jié)點和刪除第一物理結(jié)點對系統(tǒng)的影響;已分配的第一物理結(jié)點或者新增加的第一物理結(jié)點可以被映射到原有的或者新的第一物理結(jié)點中;在刪除第一物理結(jié)點時,能夠?qū)⒃摰谝晃锢斫Y(jié)點中的內(nèi)容移到相鄰第一物理結(jié)點,從而保證其它第一物理結(jié)點不發(fā)生變化,達到了維護第一物理結(jié)點負載均衡的效果。
[0084]在上述實施例中,處理裝置還可以包括:第三計算模塊,用于在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值;第八確定模塊,用于使用第四哈希值確定物理結(jié)點的虛擬結(jié)點的子哈希值;第二分配模塊,用于按照第四哈希值為物理結(jié)點分配第四存儲位置,并按照子哈希值為虛擬結(jié)點分配第五存儲位置;建立模塊,用于建立第四存儲位置、第五存儲位置與IP地址的映射關(guān)系得到數(shù)據(jù)表。
[0085]本發(fā)明上述實施例,通過一致性hash來解決分布式系統(tǒng)中結(jié)點增加時,已分配的內(nèi)容可以被映射到原有的或者新的結(jié)點中,保證了一致性,同時在結(jié)點刪除時,能夠?qū)⒃摻Y(jié)點中的內(nèi)容移到相鄰結(jié)點,從而保證其它結(jié)點不發(fā)生變化;同時引入虛擬結(jié)點,將一個物理節(jié)點與多個虛擬結(jié)點進行映射,對虛擬結(jié)點進行hash運算,保證了結(jié)點少時的負載均衡的問題;并且,在歷史URL的存儲上使用bloomfilter算法來記錄已爬取的URL狀態(tài)信息,壓縮了存儲空間,提高查詢效率。
[0086]進一步地,待爬取URL的分配上使用了一致性Hash算法來保證分布式系統(tǒng)中在增刪結(jié)點時滿足的映射的一致性及分散性,當過引入在物理結(jié)點上引入虛擬結(jié)點來解決負載均衡的問題。
[0087]本實施例中所提供的各個模塊與方法實施例對應步驟所提供的使用方法相同、應用場景也可以相同。當然,需要注意的是,上述模塊涉及的方案可以不限于上述實施例中的內(nèi)容和場景,且上述模塊可以運行在計算機終端或移動終端,可以通過軟件或硬件實現(xiàn)。
[0088]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果:
[0089]采用本發(fā)明,在爬蟲抓取網(wǎng)頁資源信息時,需要判斷該網(wǎng)頁資源信息是否被爬取過,具體是解析該網(wǎng)頁資源地址,然后將該網(wǎng)頁資源地址數(shù)據(jù)進行哈希計算得到第一哈希值,再按照第一哈希值將網(wǎng)頁資源地址分配到第一存儲位置,然后在第一存儲位置所對應的第一物理結(jié)點上判斷該網(wǎng)頁資源地址是否被爬取過,若判斷出該網(wǎng)頁資源地址被爬取過則丟棄該網(wǎng)頁資源地址,若該網(wǎng)頁資源地址沒有被爬取過,則將該網(wǎng)頁資源地址存儲到待爬取隊列。采用本發(fā)明,解決了現(xiàn)有技術(shù)中對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的存儲占用空間大和查詢效率低的問題,從而達到了對大規(guī)模的網(wǎng)頁資源地址數(shù)據(jù)的快速存儲和高效查詢的效果。
[0090]顯然,本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0091]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理方法,其特征在于,包括: 解析下載的網(wǎng)頁得到網(wǎng)頁資源地址; 對所述網(wǎng)頁資源地址進行哈希計算得到第一哈希值; 按照所述第一哈希值將所述網(wǎng)頁資源地址分配至對應的第一存儲位置; 在所述第一存儲位置對應的第一物理結(jié)點上判斷所述網(wǎng)頁資源地址是否被爬取過; 若所述網(wǎng)頁資源地址被爬取過,則丟棄所述網(wǎng)頁資源地址; 若所述網(wǎng)頁資源地址未被爬取過,則保存所述網(wǎng)頁資源地址至待爬取隊列。
2.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,按照所述第一哈希值將所述網(wǎng)頁資源地址分配至對應的第一存儲位置包括: 檢測數(shù)據(jù)表中是否存在所述第一哈希值; 若所述數(shù)據(jù)表中不存在所述第一哈希值,則查詢所述數(shù)據(jù)表中比所述第一哈希值大的值中最小的第二哈希值,讀取所述第二哈希值對應的所述第一存儲位置;若所述數(shù)據(jù)表中不存在所述第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為所述第一存儲位置; 若所述數(shù)據(jù)表中存在所述第一哈希值,則讀取所述第一哈希值的所述第一存儲位置; 將所述網(wǎng)頁資源地址存儲至所述第一存儲位置。
3.根據(jù)權(quán)利要求2所述的處理方法,其特征在于, 在按照所述第一哈希值將所述網(wǎng)頁資源地址分配至對應的第一存儲位置之后,所述處理方法包括:讀取所述第一存儲位置的第一 IP地址; 在所述第一存儲位置對應的第一物理結(jié)點上判斷所述網(wǎng)頁資源地址是否被爬取過包括: 在所述第一 IP地址的所述第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對所述網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值; 判斷多個所述第三哈希值對應的第二存儲位置上是否已存儲所述網(wǎng)頁資源地址;若多個所述第二存儲位置上均已存儲所述網(wǎng)頁資源地址,則確定所述網(wǎng)頁資源地址已被爬取過; 若多個所述第二存儲位置上未均存儲所述網(wǎng)頁資源地址,則確定所述網(wǎng)頁資源地址未被爬取過。
4.根據(jù)權(quán)利要求3所述的處理方法,其特征在于,在所述第一IP地址的所述第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對所述網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,所述處理方法包括: 判斷所述第一 IP地址是否為第二物理結(jié)點的IP地址,其中,所述第二物理結(jié)點為解析所述網(wǎng)頁的物理結(jié)點; 若所述第一 IP地址為所述第二物理結(jié)點的IP地址,則將所述第二物理結(jié)點確定為所述第一物理結(jié)點; 若所述第一 IP地址不為所述第二物理結(jié)點的IP地址,則將所述網(wǎng)頁資源地址發(fā)送至所述第一 IP地址對應的所述第一物理結(jié)點。
5.根據(jù)權(quán)利要求2所述的處理方法,其特征在于,將所述網(wǎng)頁資源地址存儲至所述第一存儲位置包括: 將所述網(wǎng)頁資源地址分配至第三存儲位置,其中,所述第三存儲位置為虛擬結(jié)點的存儲位置; 通過所述虛擬結(jié)點與所述第一物理結(jié)點的映射關(guān)系確定所述第一存儲位置; 將所述網(wǎng)頁資源地址存儲至所述第一存儲位置。
6.根據(jù)權(quán)利要求1至5中任意一項所述的處理方法,其特征在于,在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,所述處理方法包括: 對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值; 使用第四哈希值確定所述物理結(jié)點的虛擬結(jié)點的子哈希值; 按照所述第四哈希值為所述物理結(jié)點分配第四存儲位置,并按照所述子哈希值為所述虛擬結(jié)點分配第五存儲位置; 建立所述第四存儲位置、所述第五存儲位置與所述IP地址的映射關(guān)系得到數(shù)據(jù)表。
7.一種分布式系統(tǒng)上網(wǎng)絡(luò)爬蟲數(shù)據(jù)的處理裝置,其特征在于,包括: 解析模塊,用于解析下載的網(wǎng)頁得到網(wǎng)頁資源地址; 第一計算模塊,用于對所述網(wǎng)頁資源地址進行哈希計算得到第一哈希值; 存儲模塊,用于按照所述第一哈希值將所述網(wǎng)頁資源地址分配至對應的第一存儲位置; 第一判斷模塊,用于在所述第一存儲位置對應的第一物理結(jié)點上判斷所述網(wǎng)頁資源地址是否被爬取過; 第一確定模塊,用于若所述網(wǎng)頁資源地址被爬取過,則丟棄所述網(wǎng)頁資源地址; 第二確定模塊,用于若所述網(wǎng)頁資源地址未被爬取過,則保存所述網(wǎng)頁資源地址至待爬取隊列。
8.根據(jù)權(quán)利要求7所述的處理裝置,其特征在于,所述存儲模塊包括: 檢測模塊,用于檢測數(shù)據(jù)表中是否存在所述第一哈希值; 查詢模塊,用于若所述數(shù)據(jù)表中不存在所述第一哈希值,則查詢所述數(shù)據(jù)表中比所述第一哈希值大的值中最小的第二哈希值,讀取所述第二哈希值對應的所述第一存儲位置;轉(zhuǎn)換模塊,用于若所述數(shù)據(jù)表中不存在所述第二哈希值,則將預設(shè)結(jié)點的預設(shè)位置作為所述第一存儲位置; 第三確定模塊,用于若所述數(shù)據(jù)表中存在所述第一哈希值,則讀取所述第一哈希值的所述第一存儲位置; 第一存儲子模塊,用于將所述網(wǎng)頁資源地址存儲至所述第一存儲位置。
9.根據(jù)權(quán)利要求8所述的處理裝置,其特征在于, 所述處理裝置包括讀取模塊,用于在按照所述第一哈希值將所述網(wǎng)頁資源地址分配至對應的第一存儲位置之后,讀取所述第一存儲位置的第一 IP地址; 所述第一判斷模塊包括: 第二計算模塊,用于在所述第一 IP地址的所述第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對所述網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值; 第一判斷子模塊,用于判斷多個所述第三哈希值對應的第二存儲位置上是否已存儲所述網(wǎng)頁資源地址; 第四確定模塊,用于若多個所述第二存儲位置上均已存儲所述網(wǎng)頁資源地址,則確定所述網(wǎng)頁資源地址已被爬取過; 第五確定模塊,用于若多個所述第二存儲位置上未均存儲所述網(wǎng)頁資源地址,則確定所述網(wǎng)頁資源地址未被爬取過。
10.根據(jù)權(quán)利要求9所述的處理裝置,其特征在于,所述處理裝置包括: 第二判斷模塊,用于在所述第一 IP地址的所述第一物理結(jié)點上使用多個預設(shè)的哈希函數(shù)對所述網(wǎng)頁資源地址進行哈希計算,得到多個第三哈希值之前,判斷所述第一 IP地址是否為第二物理結(jié)點的IP地址,其中,所述第二物理結(jié)點為解析所述網(wǎng)頁的物理結(jié)點;第六確定模塊,用于若所述第一 IP地址為所述第二物理結(jié)點的IP地址,則將所述第二物理結(jié)點確定為所述第一物理結(jié)點; 第七確定模塊,用于若所述第一 IP地址不為所述第二物理結(jié)點的IP地址,則將所述網(wǎng)頁資源地址發(fā)送至所述第一 IP地址對應的所述第一物理結(jié)點。
11.根據(jù)權(quán)利要求8所述的處理裝置,其特征在于,所述第一存儲子模塊包括: 第一分配模塊,用于將所述網(wǎng)頁資源地址分配至第三存儲位置,其中,所述第三存儲位置為虛擬結(jié)點的存儲位置; 映射模塊,用于通過所述虛擬結(jié)點與所述第一物理結(jié)點的映射關(guān)系確定所述第一存儲位置; 第二存儲子模塊,用于將所述網(wǎng)頁資源地址存儲至所述第一存儲位置。
12.根據(jù)權(quán)利要求7至11中任意一項所述的處理裝置,其特征在于,所述處理裝置包括: 第三計算模塊,用于在解析下載的網(wǎng)頁得到網(wǎng)頁資源地址之前,對分布式系統(tǒng)上的物理結(jié)點的IP地址進行哈希計算得到第四哈希值; 第八確定模塊,用于使用第四哈希值確定所述物理結(jié)點的虛擬結(jié)點的子哈希值;第二分配模塊,用于按照所述第四哈希值為所述物理結(jié)點分配第四存儲位置,并按照所述子哈希值為所述虛擬結(jié)點分配第五存儲位置; 建立模塊,用于建立所述第四存儲位置、所述第五存儲位置與所述IP地址的映射關(guān)系得到數(shù)據(jù)表。
【文檔編號】G06F17/30GK104408182SQ201410779172
【公開日】2015年3月11日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】李慶 申請人:北京國雙科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
渭源县| 古浪县| 中宁县| 洪泽县| 汕头市| 高陵县| 武宣县| 义马市| 涿州市| 苏尼特右旗| 卓资县| 徐州市| 横山县| 寻甸| 屏东市| 印江| 旬阳县| 贡嘎县| 平果县| 沂南县| 武清区| 顺义区| 墨脱县| 金昌市| 峨边| 武义县| 临桂县| 册亨县| 丰县| 新营市| 阆中市| 宝丰县| 垦利县| 乐昌市| 滦平县| 扎囊县| 南溪县| 江津市| 桐柏县| 秦皇岛市| 安平县|