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