謝蓉蓉,徐 慧,鄭帥位,馬 剛
(1. 西安石油大學(xué)計算機學(xué)院,陜西 西安 710065;2. 西安石油大學(xué)石油工程學(xué)院,陜西 西安 710065;3. 西安石油大學(xué)信息中心,陜西 西安 710065)
伴隨互聯(lián)網(wǎng)行業(yè)迅速發(fā)展以及計算機的廣泛應(yīng)用,以數(shù)字作為主要標(biāo)志的數(shù)據(jù)內(nèi)容、將網(wǎng)絡(luò)作為主要載體的文化信息,逐漸成為現(xiàn)階段信息傳播的主要方式之一。由于網(wǎng)絡(luò)自身具有全球性以及開放性的特點,在一定程度上為惡意信息的傳播提供了機會,因此,面對該問題,如何采用網(wǎng)絡(luò)數(shù)據(jù)[1]信息實行有效地控制及監(jiān)督,并快速截取有害信息、防止不良數(shù)據(jù)信息的擴散,已成為當(dāng)前網(wǎng)絡(luò)研究的主要對象。經(jīng)研究發(fā)現(xiàn),網(wǎng)絡(luò)大數(shù)據(jù)的搜索與挖掘是解決上述問題的一種重要途徑,也是數(shù)據(jù)信息查找最有效的方法之一。
針對上述問題,文獻[2]提出了基于Spark下遙感遙感大數(shù)據(jù)特征提取的加速策略。首先,采用Landsat8作為數(shù)據(jù)來源;其次,利用歸一化計算方式計算植被指數(shù)(NDVI)、差值植被指數(shù)(DVI)、比值植被指數(shù)(RVI)值;最終通過仿真數(shù)據(jù)結(jié)果表明:在統(tǒng)一硬件環(huán)境條件下,執(zhí)行相同的處理任務(wù)以及數(shù)據(jù)量,利用所提方法處理遙感大數(shù)據(jù)的速度提高了將近2倍,與基于Hadoop分布式文件系統(tǒng)(HDFS)方式相比,所提方法的處理速度提升了將近1.2倍,與基于HDFS方法相比,所提方法在柵格切分上處理速度提高了將近1.5倍,充分證明Spark方法的提取效率優(yōu)秀。文獻[3]針對民航飛機在飛行過程中需使用快速存取記錄儀(QAR),同時QAR數(shù)據(jù)也是飛行安全評估的重要依據(jù)。為了解決QAR數(shù)據(jù)樣本數(shù)量大、高維度的特點,提出了一種有效的飛行數(shù)據(jù)特征提取的高效算法——DBN算法。DBN優(yōu)勢在于其能夠擺脫對大量數(shù)據(jù)處理技術(shù)與專家經(jīng)驗的依賴,而對飛行數(shù)據(jù)進行有效特征提取。在不同類別飛行數(shù)據(jù)集上進行仿真,結(jié)果顯示與主成分分析法(PCA)相比,通過DBN提取的特征進行分類識別準(zhǔn)確率更高。文獻[4]提出了一種多代表性再融合近似數(shù)據(jù)采集方法,即多個具有相似讀數(shù)的節(jié)點組成一個數(shù)據(jù)覆蓋集。其讀取值由R節(jié)點表示??拷鄣脑O(shè)置較小,遠(yuǎn)離水槽的設(shè)置較大,可以降低熱點地區(qū)的能耗。然后提出了一種分布式數(shù)據(jù)聚合策略,該策略可以重新融合彼此相距較遠(yuǎn)但具有相似讀數(shù)的R節(jié)點的值。
由于上述所提方法在進行網(wǎng)頁大數(shù)據(jù)特征抓取時計算過程繁瑣,且誤差大,因此本文提出了基于網(wǎng)絡(luò)爬蟲的大數(shù)據(jù)特征抓取方法,經(jīng)仿真與傳統(tǒng)數(shù)據(jù)抓取相比,本文所提方法耗時更短、抓取效率更高,有較高的魯棒性。
網(wǎng)絡(luò)爬蟲中的本爬蟲在對一個網(wǎng)絡(luò)站點進行訪問時,首先會檢查網(wǎng)頁中是否存在Robts協(xié)議,如果存在,爬蟲會依據(jù)相關(guān)協(xié)議內(nèi)容確定數(shù)據(jù)抓取范圍;如果不存在,爬蟲會順著鏈接進行抓取。如圖1所示,為網(wǎng)絡(luò)爬蟲數(shù)據(jù)抓取的基本流程。
圖1 網(wǎng)絡(luò)爬蟲數(shù)據(jù)抓取基本流程
在網(wǎng)頁大數(shù)據(jù)中,將待訪問的數(shù)據(jù)隊列作為抓取對象,通過使用者或外部程序進行初始化處理,OA沖脛骨相關(guān)訪問協(xié)議初始化數(shù)據(jù)隊列中匹配的界面,解析該頁面提取數(shù)據(jù)特征,根據(jù)提取出的特征,存儲此時界面上全部數(shù)據(jù)信息,以此為基礎(chǔ),每個爬蟲的循環(huán)規(guī)律都是通過解析出的數(shù)據(jù)特征中挑選一個特征進行爬行,直至所需數(shù)據(jù)抓取完畢為止。
通過局部樣本特征對網(wǎng)頁大數(shù)據(jù)集合進行分析,同時對其中蘊含的關(guān)鍵信息進行抓取[5]。
使用Fui形容第u個數(shù)據(jù)樣本中的第i個特征,因此第u個數(shù)據(jù)樣征的表現(xiàn)形式為
(1)
則網(wǎng)頁大數(shù)據(jù)的關(guān)鍵特征抓取過程如下述:
假設(shè)網(wǎng)頁數(shù)據(jù)樣本為A∈Rn×d,使用建立的數(shù)據(jù)最短鄰圖為Gu=(V,E)描述樣本的部分構(gòu)成;其中,V表示網(wǎng)頁中節(jié)點集合;V=A:E表示各節(jié)點間連接線的集合;Gu的權(quán)重矩陣方程為W∈Rn×n,可進行具體如下描述
(2)
其中,ε表示常數(shù);W代表網(wǎng)頁數(shù)據(jù)樣本中的部分內(nèi)在結(jié)構(gòu)特。
為了更加快速準(zhǔn)確地住抓取數(shù)據(jù)信息,首先需要確函數(shù)Yu的數(shù)值結(jié)果最小,使用Yu形容網(wǎng)頁數(shù)據(jù)中的第u個特征,即
(3)
式中
(4)
(5)
其中
(6)
利用下式將Fu的結(jié)果更加精確
(7)
可得出第u個特征Yu,即
(8)
根據(jù)Yu的計算結(jié)果可抓取出Yu最小特征,即網(wǎng)頁中數(shù)據(jù)中的主要類型。
網(wǎng)頁大數(shù)據(jù)通常不具有明顯規(guī)律性與排列順序,具有較高的復(fù)雜性,本文提出基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)抓取方法,通過抓取主要特征,實現(xiàn)數(shù)據(jù)的分類與整理,提高網(wǎng)絡(luò)搜索效率。
現(xiàn)階段,網(wǎng)絡(luò)爬蟲在進行網(wǎng)頁大數(shù)據(jù)抓取時通常使用深度優(yōu)先和廣度優(yōu)先策略[6]。
1)深度優(yōu)先:當(dāng)爬蟲以順沿的形式向節(jié)點樹以縱方向分布時,網(wǎng)頁遍歷圖中不存在已訪問的節(jié)點。深度優(yōu)先可被視作遞歸過程的一種,因爬蟲在執(zhí)行任務(wù)的過程中需占據(jù)大量系統(tǒng)內(nèi)存,在大部分情況下,會導(dǎo)致爬蟲工作存在一定難度,甚至電腦會出現(xiàn)死機的情況。除此之外,因多線程運行時一次可運行多個任務(wù),且各任務(wù)都包含自身的堆棧,執(zhí)行數(shù)據(jù)抓取任務(wù)時需使用同一堆棧,所以在網(wǎng)絡(luò)爬蟲中,遞歸與多線程不可同時使用。
2)廣度優(yōu)先:當(dāng)爬蟲以順沿的形式向節(jié)點樹寬度方向分布時,抓取初始網(wǎng)頁大數(shù)據(jù)中的所有信息,隨機選取一個網(wǎng)頁地址,重復(fù)該過程。廣度優(yōu)先策略可提高爬蟲的抓取效率。
基于上述,本文所提方法中采用廣度優(yōu)先策略,可進一步提高數(shù)據(jù)抓取性能,實現(xiàn)爬蟲在訪問網(wǎng)頁過程中以并行的方式訪問服務(wù)器,連接承購后對整個網(wǎng)頁數(shù)據(jù)信息進行挖掘,以單線程對應(yīng)一個數(shù)據(jù)連接,多個線程同時運行的方式實現(xiàn)。并結(jié)合具體實際情況,因線程數(shù)量的最佳素質(zhì)與計算機的CPU性能、網(wǎng)絡(luò)情況、寬帶等因素密切相關(guān),所以并不是線程越多爬蟲效果最佳,因此需采用廣度優(yōu)先策略,可確保網(wǎng)絡(luò)爬蟲工作的過程中,網(wǎng)頁數(shù)據(jù)庫能夠正常運行與爬蟲抓取信息間找到一個平衡中心。
網(wǎng)絡(luò)爬蟲程序是非遞歸方式完成爬行的過程,在完成數(shù)據(jù)抓取時主要通過構(gòu)建等待、運行、完成、錯誤四個序列[7]。在該過程中,等待序列是OA沖處理網(wǎng)頁的集合;完成序列是已完成抓取任務(wù)的數(shù)集合;錯誤序列是爬蟲在任務(wù)過程中解析數(shù)據(jù)信息或讀取數(shù)據(jù)超時的集合。在抓取網(wǎng)頁大數(shù)據(jù)的過程中,若同一時刻下的爬蟲只能存于同一序列中,可將此看作一個運行狀態(tài),具體過程如圖2所示。
圖2 運行變化過程
大數(shù)據(jù)的序列表現(xiàn)形式為非線性時間序列,根據(jù)非線性時間序列中的關(guān)鍵點建立相空間[8],相空間可確保數(shù)據(jù)信息的準(zhǔn)確性,是網(wǎng)頁大數(shù)據(jù)抓取中的核心部分。
基于網(wǎng)絡(luò)爬蟲構(gòu)建相空間的一維時間序列,其表現(xiàn)形式為{q1,q2,…qN},則重新建立的相空間矩陣為
Q={Q1,Q2,…,QN}
(9)
也可表示為
(10)
其中
M=N-(r-1)τ
(11)
上述式(9)到(11)中,τ代表時間延長;r代表嵌入維數(shù)值。若r≥2d′+1,此時網(wǎng)頁中的大數(shù)據(jù)幾何特征得知,其中d′代表網(wǎng)絡(luò)爬蟲的維度[9]。
在相空間構(gòu)建完成后,獲得到相空間的矢量數(shù)值[10]。按定義劃分,關(guān)聯(lián)維屬于分維定義的一種,是數(shù)據(jù)信息在網(wǎng)頁多維空間中密度的體現(xiàn),表示數(shù)據(jù)信息的關(guān)聯(lián)情況。如果建立后的相空間內(nèi)存在的點數(shù)量為k,選取其中差值最大的兩組矢量數(shù)值,將差值看作兩點間的距離,可被描述為
(12)
結(jié)合式(12),將間隔距離小于既定正數(shù)l的矢量稱為關(guān)聯(lián)矢量,假設(shè)構(gòu)建的相空間中包含K個點,計算出相關(guān)聯(lián)的矢量對數(shù),可得出全部可能的K2中組合所占據(jù)的被定義為關(guān)聯(lián)積分,其表達形式為
(13)
式(13)中,使用H表示爬蟲函數(shù),即
(14)
有相關(guān)研究表明,當(dāng)關(guān)聯(lián)積分Sk(l)處于l→0時,與l間的關(guān)系如下
(15)
其中,C代表關(guān)聯(lián)維數(shù)值,若l的數(shù)值大小選擇合理,可令C代表爬蟲間的相似性結(jié)構(gòu),近似值計算方程為
(16)
在實際數(shù)據(jù)抓取過程中,通常對雙對數(shù)InSk(l)→Inl進行分析,不將斜率等于0以及為∞的直線考慮其中,選擇其中的最佳擬合直線,并設(shè)置該條直線的最佳執(zhí)行斜率為C。
標(biāo)準(zhǔn)差即網(wǎng)頁大數(shù)據(jù)中的樣本點分布形式的體現(xiàn),關(guān)聯(lián)則是根據(jù)數(shù)據(jù)在多維空間中的分布密度提下。據(jù)此,針對基于網(wǎng)絡(luò)爬蟲的大數(shù)據(jù)抓取,若相對差較大,則抓取到的數(shù)據(jù)樣本信息與實際偏差較大,這是由于頁面數(shù)據(jù)布局不集中,導(dǎo)致關(guān)聯(lián)維數(shù)值偏低,通過抓取到的關(guān)鍵特征數(shù)值,對大數(shù)據(jù)的分布關(guān)系可進行如下描述
(17)
式中,α表示倍頻因子,假設(shè)令α=0,σi表示在第i層分解后的相似系數(shù)的標(biāo)準(zhǔn)差值。
結(jié)合上訴分析可知,在一些數(shù)據(jù)標(biāo)準(zhǔn)差值較大的情況下,關(guān)系維數(shù)值相對偏小。通過分析式(17)可得到,當(dāng)Xi的數(shù)值越大時,與之相對應(yīng)的大數(shù)據(jù)布局越稀疏,關(guān)聯(lián)程度越小。因此基于網(wǎng)絡(luò)爬蟲對網(wǎng)頁大數(shù)據(jù)進行抓取,可對數(shù)據(jù)關(guān)鍵特征完成抓取任務(wù)。
為了驗證本文所提方法對網(wǎng)頁大數(shù)據(jù)抓取的效果,設(shè)置仿真對網(wǎng)頁大數(shù)據(jù)抓取方法可行性進行驗證。
選取某高校內(nèi)網(wǎng)作為仿真環(huán)境,將網(wǎng)絡(luò)爬蟲分別配置在3臺計算機中,處理器均選用奔騰頻率為43.0GHz的處理器、內(nèi)存為2GB的DDR 667、以及CITOS5.4的操作系統(tǒng),同時3臺計算機中都具備單獨的網(wǎng)絡(luò)IP地址。將計算機3個節(jié)點間的傳輸速度設(shè)為101MB/s,通過邊界路由器連接公用寬帶為5MB/s網(wǎng)絡(luò),具體結(jié)構(gòu)如圖3所示,其網(wǎng)絡(luò)實驗平臺示意如圖4所示。
圖3 仿真網(wǎng)絡(luò)環(huán)境
圖4 網(wǎng)絡(luò)實驗平臺示意圖
因所要抓取的網(wǎng)頁與網(wǎng)絡(luò)爬蟲服務(wù)器件,存在網(wǎng)絡(luò)路徑質(zhì)量以及網(wǎng)站的繁忙程度各不相同的情況,針對該問題,本次實驗選擇相同的20個網(wǎng)頁,并將網(wǎng)絡(luò)爬蟲的深度設(shè)置為3進行測驗,所得到的選用平均數(shù)值。針對本文所提方法對計算機系統(tǒng)內(nèi)的參數(shù)進行了不同設(shè)置,得到的3次大數(shù)據(jù)抓取結(jié)果如表1所示。
表1 本文所提方法數(shù)據(jù)抓取結(jié)果
在上述實驗中,對比文獻[2]、文獻[3]以及文獻[4]數(shù)據(jù)抓取方法在參數(shù)不改變條件下進行的測試,結(jié)果如表2所示。
表2 其它方法抓取結(jié)果
根據(jù)表1和表2得到的數(shù)據(jù)抓取結(jié)果分析,本文所提方法的3次抓取數(shù)據(jù)中,成功抓取數(shù)據(jù)信息的數(shù)量對比文獻[2]、文獻[3]以及文獻[4]方法較多,并且每次抓取數(shù)據(jù)所需時間比其它文獻方法短。本文所提方法在其它方法的基礎(chǔ)上,放棄了少量的網(wǎng)頁數(shù)據(jù)抓取,大幅度提高了抓取效率,是由于基于網(wǎng)絡(luò)爬蟲提取數(shù)據(jù)的關(guān)鍵特征,抓取成功概率越來越符合實際情況。
分析圖5和圖6可知,本文方法3次測試中,大數(shù)據(jù)抓取成功率均高達90%以上,而文獻[2]、文獻[3]和文獻[4]的抓取成功率在70%到80%之間。本文方法3次實驗耗時均在14s以下,其它文獻方法均高于17s。現(xiàn)階段,在網(wǎng)頁大數(shù)據(jù)的規(guī)模不斷擴大的情況下,若想通過網(wǎng)絡(luò)爬蟲實現(xiàn)整個網(wǎng)頁數(shù)據(jù)完整抓取是存在一定難度的,首先由于網(wǎng)頁自身孤點的原因,其次由于網(wǎng)頁數(shù)據(jù)信息量龐大,實時性較高且網(wǎng)絡(luò)架范圍廣,會因抓取速度較慢造成一些網(wǎng)頁被放棄,甚至由于響應(yīng)時間較長導(dǎo)致用戶不得不放棄游覽的頁面。對于網(wǎng)絡(luò)爬蟲抓取方法而言,在不間斷抓取網(wǎng)頁大數(shù)據(jù)的情況下,可將節(jié)約的時間用于抓取更多的數(shù)據(jù)信息,以少量的計算過程大幅度提高抓取效率,有較高的應(yīng)用推廣價值。
圖5 大數(shù)據(jù)抓取成功率對比
圖6 大數(shù)據(jù)抓取耗時對比
解決傳統(tǒng)網(wǎng)頁大數(shù)據(jù)抓取方法效率低,誤差大,為此本文提出了基于網(wǎng)絡(luò)爬蟲的網(wǎng)頁數(shù)據(jù)抓取方法,將整個網(wǎng)頁集和看做一個大數(shù)據(jù)庫,從而提供完善的數(shù)據(jù)信息內(nèi)容以供監(jiān)測與提取。最后通過仿真證明了所提方法的可行性以及有效性,可為今后的數(shù)據(jù)信息抓取提供可靠的有效方法。在后續(xù)的數(shù)據(jù)抓取中,可利用構(gòu)建的相空間與網(wǎng)頁數(shù)據(jù)關(guān)聯(lián)維,對網(wǎng)頁大數(shù)據(jù)的關(guān)鍵特征進行獲取,將得到有關(guān)網(wǎng)頁數(shù)據(jù)內(nèi)容信息以及用戶訪問行為方式。