專利名稱:一種采集網頁的方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信及網絡領域,特別是涉及一種采集網頁的方法及系統(tǒng)。
背景技術:
爬蟲(也稱為crawler、 spider或robot)是搜索引擎中負責數(shù)據(jù)采集的子系 統(tǒng)。爬蟲采集的數(shù)據(jù)質量的高低直接影響到搜索引擎的搜索結果的質量。
爬蟲系統(tǒng)在第一次爬行時,按照一定的策略來決定哪些網頁先爬,哪些網 頁后爬;之后不斷檢測已爬過的網頁是否被更新,并不斷采集新的URL。在爬 蟲本輪爬行過程中,先爬行的網頁內容(URL不變)可能已經發(fā)生了變化,如 果搜索引擎對過期的頁面進行索引,并作為某些關鍵字的搜索結杲顯示給用 戶,則用戶看到的網頁內容與預期的頁面不符,會很大程度上影響用戶感受。 例如某個商店的熱門商品拒臺的頁面,商品頻繁地上架下架,如杲爬蟲檢測 更新速度不快的話,很可能用戶搜索mp3播放器得到的頁面卻顯示蛋糕。又如 用戶搜索XXX軟件,得到的頁面卻為空白頁。
爬蟲系統(tǒng)的爬行能力是有限的,而互聯(lián)網上的頁面相對來說是無限的。爬 蟲在爬行新的網頁的同時,要重新爬行舊的網頁,以檢測該網頁是否被更新, 并告知搜索引擎用新鮮的頁面代替不新鮮的頁面,維持整個網頁集合一定的新 鮮度。
設爬行URL集合為S-(e,,e2,e3,…,eJ,含有N個URL,則單個URL的新
鮮度(freshness)定義為F(ei;t)=pfe,—to date at timet
l_0, otherwise
URL集合S的新鮮度(freshness)定義為F(S;t)-丄f]F(e,;t)
為了使網頁集合S的新鮮度最大化,即越接近1越好,現(xiàn)有技術提供了兩種采集網頁的方法。
現(xiàn)有技術一、固定更新法。即按照第一次采集網頁時的順序,依次檢測更 新網頁內容。
顯然,這種方法無異于重新爬行一遍互聯(lián)網,每一輪所需爬行的網頁數(shù)量
巨大,無法在一定時間內全部檢測更新所有的網頁,進而使得網頁集合s的新 鮮度較小,不能根據(jù)網頁的實際變化情況而變化。
現(xiàn)有技術二、隨機更新法。從已釆集的網頁集合中隨機抽取URL來做檢 測更新。
顯然,這種方法檢測更新的URL具有隨機性,不能維持整個網頁集合S 的高新鮮度。
綜上所述,現(xiàn)有的采集網頁的方法不能保證網頁集合的高新鮮度。
發(fā)明內容
本發(fā)明提供一種采集網頁的方法及系統(tǒng),用以解決現(xiàn)有的采集網頁的方法 不能保證網頁集合的高新鮮度的問題。
本發(fā)明方法包括在系統(tǒng)中設定更新周期由短到長的至少兩個隊列;之后, 包括下列步驟系統(tǒng)根據(jù)各個隊列的更新周期檢測該隊列中錄入的各個網頁鏈 接地址URL是否超時;以及當檢測到URL超時時,判斷該URL中的網頁內 容是否被更新,若被更新,則將該URL錄入比當前所在隊列的更新周期次短 的隊列;否則將該URL錄入比當前所在隊列的更新周期次長的隊列。
進一步,若URL被錄入更新周期最短的隊列中,并且當超時時判定該URL 中的網頁內容被更新,則將該URL移至所述更新周期最短的隊列的隊尾;以 及若URL被錄入更新周期最長的隊列中,并且當超時時判定該URL中的網頁 內容未被更新,則將該URL移出系統(tǒng)。
進一步,當系統(tǒng)搜索到新的URL時,將該URL錄入系統(tǒng)中設定的任一隊 列中。又進一步,當系統(tǒng)搜索到新的URL時,將該URL錄入各個隊列中更新
周期長度處于中間的隊列。當系統(tǒng)搜索到新的URL時,也可將該URL錄入各 個隊列中更新周期最長的隊列。
綜上所述,系統(tǒng)將URL從隊列的隊尾錄入;以及系統(tǒng)檢測每一隊列的隊 首URL是否超時。
綜上所述,根據(jù)每一URL當前的重要性,相應為該URL設定PR值;并 以URL的PR值與預設的閥值的比較結果作為該URL錄入特定隊列的條件。
本發(fā)明系統(tǒng),包括隊列設定單元,用于設定和保存更新周期由短到長的 至少兩個隊列;更新周期檢測單元,用于根據(jù)隊列的更新周期檢測該隊列中錄 入的URL是否超時,并在檢測到URL超時時,將該URL取出并發(fā)送到更新 判斷單元;更新判斷單元,用于判斷收到的URL中的網頁內容是否被更新, 并將判斷結果告知錄入單元;錄入單元,用于在所述判斷結果表明URL中的 網頁內^f皮更新時,將該URL錄入比當前所在隊列的更新周期次短的隊列; 在所述判斷結果表明URL中的網頁內容未被更新時,將該URL錄入比當前所 在隊列的更新周期次長的隊列。
進一步,當系統(tǒng)搜索到新的URL時,所述錄入單元將該URL錄入隊列設 定單元中設定的任一隊列中。
綜上所述,所述系統(tǒng)還包括PR值設定單元,用于根據(jù)每一URL當前的 重要性,相應為該URL設定PR值;并將URL的PR值與預設的閥值的比較 結果輸出到錄入單元,作為該URL錄入特定隊列的條件。
本發(fā)明有益效果如下
本發(fā)明不在釆用固定更新法和隨機更新法,而是在系統(tǒng)中設定更新周期由 短到長的至少兩個隊列;之后,系統(tǒng)才艮據(jù)各個隊列的更新周期檢測該隊列中錄 入的各個URL是否超時;以及當檢測到URL超時時,判斷該URL中的網頁 內容是否被更新,若被更新,則將該URL錄入比當前所在隊列的更新周期次 短的隊列;否則將該URL錄入比當前所在隊列的更新周期次長的隊列。
這樣URL會根據(jù)該URL中的網頁內容是否被更新,而在更新周期各不相同的隊列中不斷跳轉,即URL中的網頁內容更新越頻繁,則會被提升到更新 周期更短的隊列中;URL中的網頁內容更新越不頻繁,則會被降低到更新周期 更長的隊列中。從而實現(xiàn)了 URL更新周期的自適應,最大限度的利用了爬蟲 系統(tǒng)的爬行能力;進而保證網頁集合的高新鮮度。
圖1為本發(fā)明方法步驟流程圖; 圖2為本發(fā)明系統(tǒng)結構示意圖。
具體實施例方式
由于爬蟲的爬行能力相對于可爬行的網頁資源是有限的,重爬所有的網頁 的時間可能使得許多頁面變?yōu)椴恍迈r。因此,爬蟲要利用有限的資源,重爬盡 量少的網頁來維持盡量高的新鮮度。對于已爬行的網頁,應選擇不同的周期去 檢測更新它們。
例如如果爬蟲只爬行3個網頁A、 B、 C,而且A、 B、 C網頁的更新時 間各不相同,A—天更新一次,B三天更新一次,C九天更新一次。如現(xiàn)有技 術一提及的固定更新法,重新爬行的順序將會是A、 B、 C、 A、 B、 C、 A、 B、 C、 A、 B、 C…。而采用合理檢測更新策略的順序應該是A、 A、 A、 B、 A、 A、 A、 B、 A、 A、 A、 B、 C、 A、 A、 A、 B、 A、 A…。
為了使網頁集合的新鮮度最大化,系統(tǒng)檢測更新URL的周期應由該URL 中的網頁內容的更新周期來決定,然而網頁內容的更新周期往往是不固定的, 不僅不同網頁間的更新周期不相同,即使是同一網頁,在某段時間內與另一段 時間內的內容更新周期也會有可能不同。因此需要系統(tǒng)自適應的調整各個URL 的檢測更新周期。
本發(fā)明提供了一種采集網頁的方法,首先,在系統(tǒng)中設定更新周期由短到 長的至少兩個隊列。之后,參見圖l所示,包括下列主要步驟
S1 、系統(tǒng)根據(jù)各個隊列的更新周期檢測該隊列中錄入的各個URL是否超 時;當檢測到超時的URL時(即當檢測到有URL到達其對應的更新周期時認 為該URL超時),轉入步驟S2。
本發(fā)明中,系統(tǒng)將URL錄入隊列時,從隊列的隊尾錄入;也可從隊列的 隊首錄入。所述錄入包括步驟S3和S4中所述的錄入,以及搜索到新的URL 時的錄入。當系統(tǒng)搜索到新的URL時,可將該URL錄入系統(tǒng)中設定的任一隊 列;例如將該URL錄入各個隊列中更新周期長度處于中間的隊列;又如 將該URL錄入各個隊列中更新周期最長的隊列。
以從隊列的隊尾錄入為例,當URL被錄入隊尾時,開始以其所在隊列的 更新周期對該URL計時,所以越接近隊首的URL越接近超時時間,進而系統(tǒng) 只需檢測每一隊列的隊首URL是否超時。
當系統(tǒng)4僉測到某一隊列的隊首URL超時時,系統(tǒng)從該URL所在隊列中取 出該URL,并轉入步驟S2。
52、 判斷該URL中的網頁內容是否被更新,若被更新,則轉入步驟S3; 否則,轉入步驟S4。
^斷《
根據(jù)網頁腳本中的更新時間進行判斷;或者下載該URL當前的網頁內容,并 與之前下栽的該URL的網頁內容進行比較,以判斷是否被更新。 若凈皮更新,則轉入步驟S3;否則,轉入步驟S4。
53、 將該URL錄入比當前所在隊列的更新周期次短的隊列。
即該URL中的網頁內容在該URL當前所在隊列的更新周期內進行了更 新,表明該URL與其當前所在隊列的更新周期并不匹配,應該縮短該URL的 檢測周期,所以將該URL錄入比當前所在隊列的更新周期次短的隊列。
當然,若URL被錄入更新周期最短的隊列中,并且當超時時判定該URL 中的網頁內容凈皮更新,則該URL無法再錄入更新周期更短的隊列,所以將該 URL移至所述更新周期最短的隊列的隊尾即可。
進一步,本步驟中進行錄入操作時,還可增加附加條件。即根據(jù)每一URL 當前的重要性,相應為該URL設定PR值,所述PR值在通信及網絡領域中用 亍表示優(yōu)先級信息;并以URL的PR值與預設的閥值的比較結果作為該URL 錄入特定隊列的條件。例如若想錄入更新周期最短的隊列,不但要滿足URL 中的網頁內容被更新,而且還需該URL的PR值大于等于預設的閥值,即該 URL當前具有較高的優(yōu)先級才能被錄入更新周期最短的隊列。
S4、將該URL錄入比當前所在隊列的更新周期次長的隊列。
即該URL中的網頁內容在該URL當前所在隊列的更新周期內未進行更 新,表明該URL與其當前所在隊列的更新周期并不匹配,應該加長該URL的 檢測周期,所以將該URL錄入比當前所在隊列的更新周期次長的隊列。
當然,若URL-故錄入更新周期最長的隊列中,并且當超時時判定該URL 中的網頁內容未被更新,則該URL無法再錄入更新周期更長的隊列,所以將 該URL移出系統(tǒng)即可。所述被移出系統(tǒng)的URL將作為新的URL,當再次被采 集進入系統(tǒng)后,按照預設的錄入規(guī)則錄入相應隊列(參見步驟S1),重新開始 更新檢測。
進一步,本步驟中進行錄入操作時,還可增加附加條件。即根據(jù)每一URL 當前的重要性,相應為該URL設定PR值;并以URL的PR值與預設的閥值 的比較結果作為該URL錄入特定隊列的條件。例如若想錄入更新周期最長 的隊列,不但要滿足URL中的網頁內容未被更新,而且還需該URL的PR值 小于預設的閥值。即該URL當前具有較低的優(yōu)先級才能被錄入更新周期最長 的隊列。
至此本發(fā)明方法的概述完畢,以下通過兩個實施例具體描述本發(fā)明方法。 參方法實施例一、系統(tǒng)搜索到新的URL,將其錄入各個隊列中更新周期長
度處于中間的隊列,并自適應該URL的更新周期。
Ul、首先在系統(tǒng)中設定更新周期由短到長的5個隊列,即隊列qO的更新
周期為l小時;隊列ql的更新周期為5小時;隊列q2的更新周期為1天;隊
列q3的更新周期為3天;隊列q4的更新周期為8天。
之后,以單臺爬蟲的爬行速度為200個/秒計算,并且認為更新的時間不超 過整個爬行時間的50°/。,則才艮據(jù)各個隊列的更新周期可計算出各個隊列可容納 的URL的數(shù)量
qO的大小=200個/秒x60分x 60秒x50%xl小時=360,000 ql的大小=200個/秒x 60分x 60秒x 50% x 5小時=1,800,000 q2的大小=200個/秒x 60分x 60秒x 50% x 24小時=8,640,000 q3的大小=200個/秒x 60分x 60秒x 50% x 24小時x 3天=25,920,000 q4的大小=200個/秒x 60分x 60秒x 50% x 24小時x8天=69,120,000 L12、系統(tǒng)搜索到新的URL,將其錄入各個隊列中更新周期長度處于中間 的隊列。即將該URL錄入隊列q2的隊尾,并開始以隊列q2的更新周期(1 天)對該URL計時。隨著隊列q2隊首的URL不斷超時被取出,所述新的URL 被移至隊列q2的隊首。當所述新的URL被判定超時時,將該URL從隊列q2 中取出。
本方法實施例中,由于新的URL初始錄入的隊列為各個隊列中更新周期 長度處于中間的隊列,所以可以經過最少次數(shù)的循環(huán)檢測,將該URL錄入其 最匹配的隊列中,從而達到更好的效果。
U3、系統(tǒng)利用爬蟲重新爬4刊皮取出的URL中的網頁內容,根據(jù)網頁腳本 中的更新時間進行判斷;或者下載該URL當前的網頁內容,并與之前下載的 該URL的網頁內容進行比較,以判斷是否被更新。
本例中判定該URL中的網頁內容未被更新,即表明該URL與其當前所在 隊列q2的更新周期(1天)并不匹配,應該加長該URL的檢測周期。
L14、將該URL錄入隊列q3的隊尾,并開始以隊列q3的更新周期(3天) 對該URL計時。當檢測到該URL的計時時間到達3天時,又將該URL從隊 列q3中取出,并重復上述L13中的操作。
如此往復,該URL被列入隊列q4,當超時時判定該URL中的網頁內容未
被更新,則認為該URL中的網頁內容更新過于緩'隄,為了節(jié)約有限的爬行資 源,無需再將該URL錄入更新周期更長的隊列,所以將該URL移出系統(tǒng)即可。 待系統(tǒng)再次將該URL作為新搜索到的URL錄入隊列q2時,重復上述4喿作。
*方法實施例二、系統(tǒng)搜索到新的URL,將其錄入各個隊列中更新周期最 長的隊列,并自適應該URL的更新周期。
L21、與步驟L11相同。
L22、系統(tǒng)搜索到新的URL,將其錄入各個隊列中更新周期最長的隊列, 即將該URL錄入隊列q4的隊尾,并開始以隊列q4的更新周期(8天)對該 URL計時。隨著隊列q4隊首的URL不斷超時被取出,所述新的URL被移至 隊列q4的隊首。當所述新的URL被判定超時時,將該URL從隊列q4中取出。
L23、系統(tǒng)利用爬蟲重新爬行被取出的URL中的網頁內容,根據(jù)網頁腳本 中的更新時間進行判斷;或者下載該URL當前的網頁內容,并與之前下載的 該URL的網頁內容進行比較,以判斷是否被更新。
本例中判定該URL中的網頁內容被更新,即表明該URL與其當前所在隊 列q4的更新周期(8天)并不匹配,應該縮短該URL的檢測周期。
L24、將該URL錄入隊列q3的隊尾,并開始以隊列q3的更新周期(3天) 對該URL計時。當檢測到該URL的計時時間到達3天時,又將該URL從隊 列q3中取出,并重復上述L23中的操作。
如此往復,該URL所在的隊列不斷變化,隨之該URL的檢測更新周期不 斷縮短。從步驟L21中可以看出,隊列qO所能容納的URL數(shù)量最少,顯然應 該提高進入隊列q0中的URL的數(shù)量;而且隊列q0的更新周期也最短,檢測 更新最為頻繁,若不嚴格控制隊列qO中URL的數(shù)量,則會導致爬蟲絕大部分 時間消耗在隊列q0的循環(huán)更新上。
所以在URL被錄入隊列q0之前,還可增加附加條件。即根據(jù)每一 URL 當前的重要性(上一輪檢測時的重要性),相應為該URL設定PR值;并以URL 的PR值與預設的閥值的比較結果作為該URL錄入特定隊列的條件。例如所
述URL采集自某個人網站,并且該URL中的網頁內容為八卦新聞,則該URL 當前的PR值被設定為3 (重要性較低),若預設的閥值為5,比較結杲表明該 URL不符合進入隊列qO的附加條件,即使該URL中的網頁內容頻繁更新,也 不能進入隊列q0,只能穩(wěn)定停留在隊列ql。
若URL被錄入隊列q0中,并且當超時時判定該URL中的網頁內容被更 新,則該URL無法再錄入更新周期更短的隊列,所以將該URL移至隊列q0 的隊尾即可。
本發(fā)明還提供了一種采集網頁的系統(tǒng),參見圖2所示,其包括環(huán)形相接
的隊列設定單元l、更新周期檢測單元2、更新判斷單元3和錄入單元4;進一
步還包括與所述錄入單元4相連的PR值設定單元5。
所述隊列設定單元1,用于設定和保存更新周期由短到長的至少兩個隊列。 所述更新周期檢測單元2,用于根據(jù)隊列的更新周期檢測該隊列中錄入的
URL是否超時,并在檢測到URL超時時,將該URL取出并發(fā)送到更新判斷單元3。
所述更新判斷單元3,用于判斷收到的URL中的網頁內容是否被更新,并 將判斷結果告知錄入單元4。
所述錄入單元4,用于在所述判斷結果表明URL中的網頁內容被更新時, 將該URL錄入比當前所在隊列的更新周期次短的隊列;在所述判斷結果表明 URL中的網頁內容未被更新時,將該URL錄入比當前所在隊列的更新周期次 長的隊列?;蛘?,用于當系統(tǒng)搜索到新的URL時,將該URL錄入隊列設定單 元1中設定的任一隊列中。
所述PR值設定單元5,用于根據(jù)每一URL當前的重要性,相應為該URL 設定PR值(即根據(jù)每一 URL當前的重要性,相應為該URL設定優(yōu)先級);并 將URL的PR值與預設的閥值的比較結果輸出到錄入單元4,作為該URL錄 入特定隊列的條件。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及 其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1、一種采集網頁的方法,其特征在于,在系統(tǒng)中設定更新周期由短到長的至少兩個隊列;之后,包括下列步驟系統(tǒng)根據(jù)各個隊列的更新周期檢測該隊列中錄入的各個網頁鏈接地址URL是否超時;以及當檢測到URL超時時,判斷該URL中的網頁內容是否被更新,若被更新,則將該URL錄入比當前所在隊列的更新周期次短的隊列;否則將該URL錄入比當前所在隊列的更新周期次長的隊列。
2、 如權利要求l所述的方法,其特征在于,若URL被錄入更新周期最短 的隊列中,并且當超時時判定該URL中的網頁內容被更新,則將該URL移至 所述更新周期最短的隊列的隊尾;以及若URL被錄入更新周期最長的隊列中,并且當超時時判定該URL中的網 頁內容未被更新,則將該URL移出系統(tǒng)。
3、 如權利要求l所述的方法,其特征在于,當系統(tǒng)搜索到新的URL時, 將該URL錄入系統(tǒng)中設定的任一隊列中。
4、 如權利要求3所述的方法,其特征在于,當系統(tǒng)搜索到新的URL時, 將該URL錄入各個隊列中更新周期長度處于中間的隊列。
5、如權利要求3所述的方法,其特征在于,當系統(tǒng)搜索到新的URL時, 將該URL錄入各個隊列中更新周期最長的隊列。
6、 如權利要求1至5任一項所述的方法,其特征在于,系統(tǒng)將URL從隊 列的隊尾錄入;以及系統(tǒng)檢測每一隊列的隊首URL是否超時。
7、 如權利要求1至5任一項所述的方法,其特征在于,根據(jù)每一URL當 前的重要性,相應為該URL設定PR值;并以URL的PR值與預設的閥值的 比較結果作為該URL錄入特定隊列的條件。
8、 一種采集網頁的系統(tǒng),其特征在于,包括隊列設定單元,用于設定和保存更新周期由短到長的至少兩個隊列;更新周期檢測單元,用于根據(jù)隊列的更新周期檢測該隊列中錄入的URL 是否超時,并在檢測到URL超時時,將該URL取出并發(fā)送到更新判斷單元;更新判斷單元,用于判斷收到的URL中的網頁內容是否被更新,并將判 斷結果告知錄入單元;錄入單元,用于在所述判斷結果表明URL中的網頁內容被更新時,將該 URL錄入比當前所在隊列的更新周期次短的隊列;在所述判斷結果表明URL 中的網頁內容未^^皮更新時,將該URL錄入比當前所在隊列的更新周期次長的 隊列。
9、 如權利要8所述的系統(tǒng),其特征在于,當系統(tǒng)搜索到新的URL時,所 述錄入單元將該URL錄入隊列設定單元中設定的任一隊列中。
10、 如權利要8或9所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 PR值設定單元,用于根據(jù)每一URL當前的重要性,相應為該URL設定PR值;并將URL的PR值與預設的閥值的比較結果輸出到錄入單元,作為該 URL錄入特定隊列的條件。
全文摘要
本發(fā)明公開了一種采集網頁的方法及系統(tǒng),用以解決現(xiàn)有的采集網頁的方法不能保證網頁集合的高新鮮度的問題。本發(fā)明方法在系統(tǒng)中設定更新周期由短到長的至少兩個隊列;之后包括系統(tǒng)根據(jù)各個隊列的更新周期檢測該隊列中錄入的各個網頁鏈接地址URL是否超時;以及當檢測到URL超時時,判斷該URL中的網頁內容是否被更新,若被更新,則將該URL錄入比當前所在隊列的更新周期次短的隊列;否則將該URL錄入比當前所在隊列的更新周期次長的隊列。本發(fā)明系統(tǒng)包括隊列設定單元、更新周期檢測單元、更新判斷單元和錄入單元。本發(fā)明可保證網頁集合的高新鮮度。
文檔編號G06F17/30GK101178713SQ200610160748
公開日2008年5月14日 申請日期2006年11月29日 優(yōu)先權日2006年11月29日
發(fā)明者杰 文, 衛(wèi) 楊, 寧 王 申請人:騰訊科技(深圳)有限公司