,,
(河南科技大學 信息工程學院,河南 洛陽 471023)
爬蟲[1]一般用于搜索引擎,實現快速、高效的從龐大的互聯網信息中找到用戶感興趣的信息。爬蟲還用于研究人員所需要的研究數據的采集[2]。但是隨著大數據和Web2.0時代的到來,多媒體社交網絡上的各類信息都“爆炸式”增長,單機爬蟲的效率和更新速度已經無法滿足用戶的需要,將并行技術用于爬蟲可有效改善爬蟲的效率[3],大數據環境下,并行爬蟲都是在分布式架構[4-5]上實現的,因為分布式爬蟲比單機多核并行爬蟲更適用于大數據環境。
為了獲取互聯網上的最新信息,全部重爬技術存在刷新代價大和數據冗余等問題,增量爬蟲技術可以有效解決該問題[6]。增量爬蟲技術就是利用特定的頁面刷新策略保證頁面副本的時新性。其中,針對頁面變化的研究是制定頁面刷新策略的重點。通過采樣根據樣本的變化規律估計整個網站的變化規律的方法可以保證頁面副本的時新性,但是還是存在數據冗余的問題。故通過歷史記錄監控網頁的變化,提出基于時間感知的增量更新算法,最后和基于Map/Reduce的并行算法相結合,在提出的分布式集群架構上驗證算法的性能和效率。
主要貢獻:1)在Hadoop分布式集群的基礎上提出基于Map/Reduce框架的并行算法;2)提出基于時間感知的增量更新算法,監控網頁的更新模式,計算出不同時間產生的頁面的相似性得分,通過頁面的相似性得分序列計算出時間感知相似性協方差矩陣,通過調整爬蟲頻次和最大相似性閾值等參數,使用混合整數二次規劃方法優化目標函數,得出最優的刷新策略,能以更低的刷新代價獲得更好的信息精確度和信息新鮮度;3)將增量爬蟲和分布式并行爬蟲相結合,應用于真實的數據集上,證明算法有較好的性能和效率。
余下部分的組織如下:第1部分是研究的相關工作進展,第2部分介紹分布式并行爬蟲框架、并行爬蟲和增量爬蟲及相關算法,第3部分是實驗結果分析及應用,最后是給出結論。
文獻[7]為了快速獲取微博數據,在單進程爬蟲的基礎上進行了并行框架的擴展,實現了基于MPI的并行數據抓取功能,該并行爬蟲擁有較好的加速比,可以快速地獲取數據,并且這些數據具有實時性和準確性。文獻[8]提出一種基于Kademlia的全分布式爬蟲集群方法,該方法能構建高效、均衡、可靠、可大規模拓展的全分布式爬蟲集群。文獻[9]研究的是基于Hadoop的分布式爬蟲技術,并在該分布式爬蟲的基礎上實現爬蟲的并行化處理,從節點不僅在各節點之間并行處理主節點分配的各個分任務,而且從節點內部也多線程的并行處理內部任務。
關于增量爬蟲的頁面的刷新策略,Tan[10]等人利用采樣樣本的方式來確定刷新時刻。文獻[11]提出了基于泊松(Poisson)分布的頁面刷新策略,作為增量爬蟲的頁面刷新方法。大量研究證明網頁的變化一般遵循泊松過程,根據這個規律可以為網頁的變化建立刷新模型,以此來預測網頁的下次更新時間。C Olston[12]等人將基于網頁特征的采樣和符合Poisson分布的這種周期性的變化結合起來,提出了一種基于信息周期的刷新策略,根據上下效用值邊界來動態地調整網頁的刷新周期。文獻[13]在C Olston等人的基礎上改進Super-shingle 算法,使其適用于視頻資源的爬蟲。由于C Olston等人引入的估計效用值的方法沒有實際意義,故文獻[14]給出了一種實用有效的估計效用閾值的方法,與以前的基于邊界的方法相比,該基于效用值的方法更好的平衡了新鮮度和刷新成本,以更低的成本獲得更好的新鮮度。K Gupta[15]等人提出一種精度感知的云爬蟲技術,使得在資源/預算受限環境中對本地數據重新抓取以便高精度的檢索最大信息量。
綜上所述,現有的爬蟲技術還沒有在效率、刷新代價和新鮮度上有較好的平衡,故提出了分布式并行爬蟲來提高爬蟲的效率,提出基于時間感知的增量更新算法以更低的刷新代價獲得更好的新鮮度,并將兩者結合起來更好的平衡效率、刷新代價和新鮮度。
論文使用的分布式爬蟲系統采用主從結構,即一個主控節點控制所有從節點執行抓取任務,主控節點負責分配任務,保證集群中所有從節點的負載均衡。使用的分配算法是計算每一個URL對應主機的哈希值,然后將相同主機的URL分到一個分區里。這樣做的目的是使相同主機的URL 在一臺機器上被爬取。分布式爬蟲可以看作是多個集中式爬蟲系統組合而成,每一個從節點都相當于一個集中式爬蟲系統,這些集中式爬蟲系統在分布式爬蟲系統中由一個主控節點來控制和管理使其能夠協同工作。
從圖1的分布式并行爬蟲框架圖中我們可以看到,框架中的主要部分包括負責任務生成、任務分配和調度以及控制管理整個系統(如爬蟲的深度,更新時間配置、系統的啟動和停止等)的主控節點;負責并行下載頁面的爬蟲集群;負責解析頁面、優化鏈接和網頁更新的MapReduce功能模塊;負責主控節點、爬蟲節點和集群之間的通信和協作(如日志管理、爬蟲集群間數據交換及運行維護)的消息中間件;和負責數據存儲的分布式文件系統(HDFS)。


圖1 基于Hadoop的分布式并行爬蟲框架圖
為了能對存儲在HDFS中的大規模數據進行并行化的計算處理,Hadoop又提供了一個稱為Map/Reduce的并行化計算框架。該框架能有效管理和調度整個集群中的節點來完成并行化程序的執行和數據處理,并能讓每個從節點盡可能對本地節點上的數據進行本地化計算。
整個爬蟲系統的核心部分可以分為3大模塊,分別為下載模塊,解析模塊和優化模塊。每個模塊都是一個獨立的功能模塊,每個模塊對應著一個Map/Reduce過程。
1)下載模塊可以實現并行下載未抓取列表。具體下載是在Reduce階段完成的。
2)解析模塊可以實現并行分析已下載網頁,提取出鏈出鏈接。該模塊只需要一個Map階段即可完成目標,還通過規則限制鏈出鏈接的類型,防止抽取出的鏈接鏈接到其他網站上。
3)優化模塊可以實現并行優化鏈出鏈接集合,過濾掉重復鏈接。
可以看出Web爬蟲系統的并行化是通過這3個可并行化的模塊實現的,實質上也就是通過Map/Reduce的并行化計算框架實現的。
在Map/Reduce任務開始時,輸入數據會被切分成若干個分片(split),默認每64M為一個分片。每一個分片都由一個Map進程處理,一個爬蟲可以同時開啟多個Map進程。所有Map的輸出結果合并之后,根據分區算法,將相同站點的URL分配到一個分區中,這樣可以使相同站點的URL在同一臺機器上被爬取,每一個分區的任務由一個Reduce進程處理,若干個分區有若干個Reduce進程并行處理,同時一個爬蟲還可以開啟多個Reduce進程。最后將并行執行的結果保存到HDFS上。
定義1:Crawler={c1,c2, ...,cn}:表示集群中爬蟲節點的集合。ci表示第i個爬蟲節點。一個爬蟲節點可以開啟的最大Map進程數和最大Reduce進程數由節點上的處理器個數決定。
定義2:{split0,split1, ...,splitm-1}:表示文件分片的集合。一個分片由一個Map進程處理。
定義3:{part0,part1, ...,partk-1}:表示文件分區的集合。一個分區由一個Reduce進程處理。
假設m= 2n,k=n,那么基于Map/Reduce的并行算法如Algorithm 1所示。Algorithm 1: Parallel algorithm based Map/ReduceInput: Input-File
Output: Output-File
1: Begin
2: Split Input-File into m slices => {split0, split1, ..., splitm-1};
3: send split0, split1to c1, open two Map processes to process this two slices
4: and send split2, split3to c2, open two Map processes to process this two slices
5: and ....
6: and send splitm-2, splitm-1to cn, open two Map processes to process this two slices;
7: Combiner all Map output => Inter-results;
8: partitioner(Inter-results) => {part0, part1, ..., partk-1};
9: send part0to c1, open a Reduce process to process part0=> partition_0
10: and sendpart1to c2, open a Reduce process to process part1=> partition_1
11: and ....
12: and sendpartk-1to cn, open a Reduce process to processpartk-1=> partition_n-1 ;
13: Output-File = {partition_0,partition_1,...,partition_n-1};
14: End
增量爬蟲的主要作用就是對數據集合的日常維護與即時更新。該技術只會在需要的時候下載新產生的網頁或發生更新的網頁,并不重新下載沒有發生變化的頁面,可有效減少數據下載量,及時更新已爬取的網頁,減小資源的耗費,保持本地數據和集成的Web數據的一致性。
下面是基于精度感知的頁面刷新策略[15]的改進。首先根據爬取網頁目標的不同設置不同的爬行計劃,然后在精度感知的基礎上增加新鮮度感知來確定最優的爬行計劃,最后對基于頁面相似性得分的時間感知相似性協方差矩陣進行降維處理來優化混合整數二次規劃方法,提高算法的效率。
定義4:T={t1,t2, ...,tn}:表示初始爬行計劃中的爬行時間戳列表。
定義5:頁面P的爬行計劃(表示為TP)是執行爬行的時間戳的順序集。爬行計劃TP中的時間戳數|TP|稱為爬行頻次f。其中,f= |TP| < |T|。
定義6:P={P1,P2, ...,Pn}:表示頁面在不同時間戳產生的快照的集合,Pi是頁面P在時間戳ti的快照。
為了簡化研究,只考慮從給定頁面Pi提取相關科技鏈接,而不是完整的頁面內容。因為新的科技以新的鏈出鏈接的形式發布重要內容,其中每個科技鏈出鏈接都鏈接到視頻頁面。總之,每個Pi現在可以被看作是相關科技鏈接的集合。
定義7:Accuracy:爬行計劃的信息精確度,表示為相對于基線爬行計劃T捕獲的信息NT,通過爬行計劃TP捕獲的信息的百分比。令NTP是使用爬行計劃TP獲得的一組內容(鏈出鏈接)。那么,AccuracyTP定義如下:
(1)
定義8:Freshness:爬行計劃的信息新鮮度,從側面反應著所抓取的元素中當前為新元素的比例。即相對于基線爬行計劃T捕獲的信息NT,通過爬行計劃TP捕獲的最新信息的百分比。令FTP是使用爬行計劃TP獲得的一組最新內容。那么,FreshnessTP定義如下:
(2)
定義9:S(Pi,Pj):表示不同時間戳上爬行的兩個頁面之間科技視頻鏈接的相似性得分。
(3)
定義10:PTS:表示頁面相似性得分時間序列。給定n個爬行頁P={P1,P2, ...,Pn}的順序集,頁面相似性得分的時間序列是計算P中連續的兩個頁面相似性得分的n-1個值的序列。
PTS={S(P1,P2),S(P2,P3),...,S(Pn-1,Pn)}
(4)
例如,保持爬行固定時間段大小為1個月,因為科技類視頻網站更新頻率低。初始爬行計劃是T= {1號,2號,...,30號}。如果每月爬行次數為5次,在隨機選擇技術中,從T隨機選擇不同的時間戳。在統一分配方案中,以均勻的間隔從T選擇爬行時間戳。則每6天即可進行統一的爬行策略,TP= {1號,7號,13號,19號,25號},這兩種方法是無監控的,沒有利用網頁更新模式的特征,無法獲得更好的精度和時新性。故需要使用監控技術獲取網頁的更新模式,分析計算出最優的爬行計劃使得網頁更新的精度和新鮮度都是最優的。
定義11:M:表示基于頁面相似性得分的時間感知相似性協方差矩陣。令n為T的基數。M是n×n矩陣,其中單元格(i,j)中的條目表示在時間戳ti和tj上爬行的頁面之間的相似性得分的平均值。假設我們已經監視了d個月的頁面更新,則單元格(i,j)中的條目表示為:
(5)
其中:S(Pi,Pj)表示在第k個月爬行的頁面Pi和Pj之間的頁面相似性得分。如果頁面Pi和Pj不是連續的頁面,中間隔著一個頁面Pk,那么,
S(Pi,Pj)=S(Pi,Pk)×S(Pk,Pj)
(6)
理想情況下,應該選擇合適的時間戳,使它們在M矩陣中具有較小值。間接地,應該尋找一個子集T’,使得以下功能被較小化。
(7)
用枚舉的方法可以獲得使公式(7)較小化的子集T’,但是這種方法的時間復雜度是指數級的,為了優化這個方法需要從另一個角度考慮問題。這個問題的本質實際上就是給定一組變量,必須選擇一些變量才能實現目標。這里,一組變量對應于爬行的時間戳,目標是使公式(7)中給出的函數較小化。 正式的問題定義如下:
假設t1,t2,...,tn是爬行時間戳。每個ti與布爾參數bi相關聯,使得:
(8)
給定子集T’的基數f和時間感知相似性協方差矩陣M,重構問題如下所示:
(9)
這是一個二進制二次規劃問題,可以使用混合整數二次規劃求解。混合整數二次規劃的目標函數是形式如下。
(10)
其中:H=2 M。為了使用混合整數二次規劃(MIQP)求解二進制二次規劃問題,將α設為零向量,將x設為大小為n的布爾向量。使用混合整數二次規劃工具箱miqp解決MIQP問題。該算法的時間復雜度是多項式級別的,即O(|T|2)。
可以通過自定義爬行頻次f調用MIQP算法得到頁面更新的最佳爬行時間序列T’,但是如果在最佳爬行時間序列中某個時間戳上的頁面幾乎沒有太明顯的更新,或者實現這些更新會花費更多的代價,那么對于這些計劃內的頁面更新是沒有必要的,所以,需要先把頁面相似性得分時間序列PTS中相似性得分平均值偏高的時間戳過濾掉,然后再計算最佳的爬行時間序列,通過這種降維的方式可以降低計算公式(10)的時間復雜度。如果降維后的維數小于爬行頻次f,那么把該網頁標記為“無變化”,在增量抓取過程中不將該網頁放入待抓取隊列中。基于時間感知的增量更新算法如Algorithm 2 所示。
增量更新分布式并行爬蟲基本流程說明如下:
1)收集種子集合。先為每一個爬蟲目標收集一個URL種子作為下載數據的入口鏈接。同時,設置已抓取層數為0。
2)判斷待抓取列表是否為空。若是,跳轉到7);否則,執行3)。
3)并行下載待抓取列表中的頁面。
4)并行解析已抓取的網頁。
5)并行優化解析出來的鏈出鏈接。將優化結果放入待抓取列表中,等待下一輪抓取。
6)判斷已抓取層數是否小于depth。若是,“已抓層數”自加1,返回2);否則進入7)。
7)合并去重。將每層抓取的網頁合并,去掉重復抓取的網頁。
8)更新本地數據庫。將合并去重后的原始網頁保存到本地數據庫。檢索整個本地數據庫,根據Algorithm 2得出的網頁的爬行計劃將擁有此刻爬行任務的頁面添加到待爬取列表中。
9)對網頁內容做進一步解析。并行分析網頁內容,從合并去重后的網頁中解析出需要的屬性信息,本系統需要的屬性信息有標題,發布時間,來源,視頻源等。
10)根據解析出的屬性信息做進一步篩選。如果屬性信息滿足用戶規則,如發布時間在最近7天內。就將滿足條件的屬性信息包括網頁的URL上傳到服務器數據庫中。否則,舍去。
Algorithm 2: Time - aware incremental updating algorithmInput: PTS set, Crawling frequency: f, Initial crawling plan:T={t1,t2, ...,tn}, the Maximum similarity:δ
Output: Crawl_Queue
1: Begin
2: new_T={t1}, new_PTS={}
3: form←1 to N// N indicates the number of Local page
4:if PTSmisExist
5: fork←1to n-1
6: ifPTSmk< δ
7:new_PTS.add(PTSmk)
8:new_T.add(tk+1)
9: endif
10:endfor
11: if| new_T| >= f
12: new_PTS => M
13: MIQP( f, M, new_T ) => T’;
14: Crawl_Queue.add(Pm) by schedule T’;
15:endif
16:endif
17: generate a new PTS for Pm
18: endfor
19: End
為了快捷有效的匯聚海內外最新最前沿的科技視頻,開發了基于Map/Reduce的并行增量爬蟲,該爬蟲在分布式框架Hadoop集群上實現。搭建的Hadoop集群由三臺服務器組成,一臺作為Master節點,兩臺作為Slave節點,節點之間局域網連接,可以相互通信。由三臺服務器搭建的Hadoop集群的配置如表1所示。

表1 Hadoop集群配置
先使用經驗數據來說明MIQP方案的表現。首先,收集數據并分析。接下來,專注于找到針對給定爬行頻次的最佳爬行時間表的問題。與基準策略相比,將基于優化技術來說明解決方案的性能。
3.1.1 實驗數據收集
爬蟲從2017年11月1日開始,到2018年1月30日結束,以1天為間隔監控3種不同的科技來源。表2列出了數據集中存在的3個主要科技來源。

表2 主要科技來源
收集的數據為每次爬蟲的日志數據,部分數據如表3所示,Out_links字段存儲當前頁面上的所有鏈出鏈接ID的集合,對照表4(本地數據),可找出具體的鏈出鏈接集合。

表3 爬蟲記錄表
3.1.2 實驗數據分析
將MIQP策略和窮舉策略,隨機策略,均勻策略的進行對比來說明MIQP策略的綜合性能最優。
首先介紹第2.3節討論的窮舉策略和MIQP策略的爬蟲結果。如前所述,已經爬取了3個屬于科技類別的新資源3個月。使用前2個月的數據作為訓練數據,以制定最佳爬行計劃,剩余的一個月數據作為測試數據。使用訓練數據發現給定爬行次數的爬行計劃,然后構建跟蹤測試數據中每月發現的計劃的爬蟲程序。該分析的評估指標是信息精確度(見定義7)和信息新鮮度(見定義8)。初始計劃以1天的時間間隔從月初1號開始爬行科技視頻,到月末30號結束。表5顯示了針對不同爬行頻次值的搜狐科技的窮舉策略和混合整數二次規劃策略的最佳爬行計劃。
在表5中,我們可以看到,窮舉策略和混合整數二次規劃(MIQP)策略生成的時間表(以天為單位,1#代表1號)并不完全相同。但是,這兩個策略的性能方面仍然與圖2所示的相似。我們可以看出,窮舉策略執行最好,然后是混合整數二次規劃策略。這兩個計劃之間的精確度差異很小,而隨機策略和均勻策略的表現是不可預測的。除了考慮信息的精確度之外,還要考慮信息的新鮮度,如圖3所示,與窮舉策略相比,MIQP策略的信息新鮮度除了個別的差異較大之外,都和窮舉策略的相似。然而,如圖4所示,與窮舉策略相比,MIQP策略的時間復雜度非常低。
綜合考慮圖2、圖3和圖4的信息精確度數據、信息新鮮度數據和時間復雜度數據,當爬行頻次為11時,爬蟲可以以較小的代價獲得最優的性能。
在爬行頻次一定的情況下,還可以繼續優化MIQP策略的效率,如表6和圖5所示,隨著最大相似性閾值的降低,信息精確度和新鮮度幾乎沒有多大變化,而MIQP策略的效率在明顯提高,當最大相似性閾值繼續降低時,信息精確度和新鮮度也明顯降低。其中,表6中δ代表最大相似性閾值,|M|代表矩陣的維數。

表5 最優爬行計劃表

圖2 不同爬行頻次下不同策略的信息精確度比較

圖3 不同爬行頻次下不同策略的信息新鮮度比較

圖4 MIQP策略與窮舉策略的時間復雜度比較


圖5 不同最大相似性閾值下MIQP策略的時間復雜度

表6 最大相似性閾值選取
通過分析可以知道當爬行頻次為11,最大相似性閾值為0.65時,可以獲得46%的信息新鮮度,71%的信息精確度,MIQP策略的效率提升了約230倍。
3.1.3 算法評價指標及實驗數據驗證
提出的時間感知增量更新算法的評價指標有三個,分別為信息精確度,信息新鮮度和時間復雜度。信息精確度的定義如2.3節中的定義7所示。信息新鮮度的定義如2.3節中的定義8所示。信息精確度和信息新鮮度之間的區別就在于通過爬行計劃TP捕獲的信息是否是最新的。例如,在初始爬行計劃T = {1號,2號,...,30號}下每天爬取的最新信息的量形成的序列為Newnum= {64, 11, 12, 10, 8, 12, 0, 0, 8, 11, 9, 11, 9, 0, 0, 10, 9, 16, 11, 11, 0, 0, 14, 14, 12, 7, 11, 0, 0, 15},也即第一天爬取64個最新視頻,第二天爬取11個最新視頻(相比于第一天),第三天爬取12個最新視頻(相比第二天),以此類推,假如,最佳爬行頻次為3,最佳爬行時間序列為T’={1號,13號,30號},則信息精確度和信息新鮮度的分母即基線爬行計劃T捕獲的信息量是一定的,等于基線爬行計劃中每天爬取的最新信息之和,而信息精確度的分子(這些信息中某些信息已經失去了時效性)等于第1天的最新信息量加上第13天相對于第1天捕獲的最新信息量再加上第30天相對于第13天捕獲的最新信息量,由于頁面上的信息都存在一定的信息周期,所以第13天相對于第1天捕獲的最新信息量并不等于Newnum序列中第2個元素到第13個元素之間所有元素的和,而是小于該和。而信息新鮮度的分子(這些信息都具有時效性)等于Newnum序列中第1個,第13個和第30個元素之和。時間復雜度的概念我們并不陌生,它描述了算法的運行時間,算法的時間復雜度越高,說明該算法的效率越低。
通過上述的數據分析可知,當爬行頻次為11,可以獲得最優的爬行計劃Topt= {1#, 3#, 6#, 9#, 13#, 15#, 19#, 21#, 25#, 28#, 30#},在該爬行計劃下對最后一個月收集的實驗數據進行驗證,通過計算可知,通過該最優爬行計劃可以獲得79%的信息精確度和42%的信息新鮮度。定義的信息新鮮度的新鮮性不超過一天,也即信息的獲取時間與信息的發布時間的差值小于一天。由于科技類視頻的生存周期比較長,那么我們也可以把信息新鮮度的新鮮性規定在兩天之內,這樣的話我們通過最優爬行計劃就可以獲得73%的信息新鮮度。
3.2.1 基于MapReduce的并行爬蟲與單機爬蟲對比
以搜狐科技頻道為例,對單機單核串行爬蟲、單機多核并行爬蟲以及基于MapReduce的并行爬蟲作對比,比較它們在處理相同規模的數據時,所花費的時間,以此作為評價爬蟲效率的標準。在實驗中一共進行了5次對比數據,數據量從500條增加到3萬條,實驗結果如圖6所示。

圖6 串行算法和并行算法的對比
從圖中可以看出,基于MapReduce的并行算法的效率最高,其次是單機多核并行算法,而單機串行算法的效率最低。當數據量達到2萬時,隨著數據量的增加,單機爬蟲所花費的時間急劇增加,而基于MapReduce的并行爬蟲所花費的時間在緩慢增加。
3.2.2 分布式并行增量爬蟲與非分布式爬蟲效率對比
以搜狐科技為例,以一個月為周期使用分布式并行增量爬蟲更新本地搜狐科技數據,單機模式下增量式更新本地數據,單機模式下每天定期重爬。對這三種爬蟲的效率,產生的冗余和花費的代價(爬蟲更新頻次)進行比較。如表7所示。

表7 不同爬蟲類型性能對比
由表7我們可以分析得出,與單機模式下定期全部重爬的爬蟲相比,分布式并行增量爬蟲以原刷新代價的36.7%,消除了99.4%的冗余,爬蟲效率提高了167倍。與串行增量爬蟲相比,分布式并行增量爬蟲的效率提高了39倍。由此可知,提出的分布式并行增量爬蟲可以以較低的刷新代價和較高的爬蟲效率獲得較優的爬蟲性能。
3.2.3 爬蟲結果在多媒體社交網絡平臺(CyVOD.net)的應用
使用開發的分布式并行增量爬蟲系統同時對搜狐視頻網站、樂視視頻網站和優酷視頻網站上的科技類最新最熱視頻進行并行自動化抓取。圖7展示了搜狐視頻網站上抓取的部分數據。其中主要抓取的視頻數據信息有視頻名稱,視頻網址,視頻發布時間和視頻源。圖7中的crawltime字段表示數據的抓取時間,videosource字段表示視頻源文件的存放地址,而視頻的原文件存放在云服務器上。自動化程序抓取的數據存放在CyVOD平臺的數據庫中,可以直接在CyVOD平臺首頁展示出來。如圖8所示是系統運行結果的部分科技視頻展示。

圖7 搜狐科技視頻部分數據
由于用戶對用爬蟲來搜索或采集信息的效率,性能和新鮮度的要求越來越高,為了適應互聯網激增的數據和網頁的動態變化,設計并實現了基于分布式集群的并行爬蟲算法。然后通過監控分布式并行爬蟲的本地數據庫網頁更新

圖8 系統運行結果在CyVOD首頁上的部分展示
模式分析網頁變化的特征,用表征科技類信息的鏈出鏈接的變化作為網頁變化的依據,結合時間感知相似性協方差矩陣和最大相似度閾值最大精度的優化頁面的爬行計劃。以網頁最佳爬行時間戳序列作為網頁刷新策略來增量式地更新分布式并行爬蟲。實驗證明,相比定期頻繁的刷新策略,該方法能以較小的刷新代價獲得較好的爬蟲性能和更新質量。