蘇莉娜
(江蘇省第二中醫(yī)院, 江蘇 南京 210019)
隨著網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)科學(xué)的發(fā)展,我國的計(jì)算機(jī)網(wǎng)絡(luò)用戶數(shù)量不斷攀升,根據(jù)2019年《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截止到2019年底,我國互聯(lián)網(wǎng)用戶數(shù)量達(dá)到了9.87億,比2018年同期增長約9.4%[1-3]?;ヂ?lián)網(wǎng)用戶數(shù)量增長的背后是網(wǎng)絡(luò)數(shù)據(jù)爆發(fā)式增長,如何使網(wǎng)絡(luò)用戶在海量數(shù)據(jù)中集中篩選有用信息,節(jié)省時(shí)間提高上網(wǎng)查詢效率是一個(gè)突出問題,其次,現(xiàn)有的數(shù)據(jù)結(jié)構(gòu)由傳統(tǒng)的嵌入式HTML 網(wǎng)頁靜態(tài)數(shù)據(jù)變成了以語音、視頻等為載體的動態(tài)數(shù)據(jù),相比于靜態(tài)數(shù)據(jù),其篩選難度更大[4-5]。因此,本文結(jié)合動態(tài)頁面特點(diǎn),建立了動態(tài)頁面腳本提取系統(tǒng),在分布式數(shù)據(jù)提取基礎(chǔ)上對動態(tài)頁面的腳本信息進(jìn)行提取,最后對系統(tǒng)的功能進(jìn)行了測試分析。
MapReduce是一種建立在分布式數(shù)據(jù)存儲基礎(chǔ)上的數(shù)據(jù)云計(jì)算方法[6-7],它是將分布式數(shù)據(jù)庫中的大量數(shù)據(jù)進(jìn)行分解,將數(shù)據(jù)庫逐漸分解成需要的目標(biāo)節(jié)點(diǎn),之后從整合的目標(biāo)節(jié)點(diǎn)中尋找需要的數(shù)據(jù)并將數(shù)據(jù)匯總。MapReduce數(shù)據(jù)處理流程如圖1所示。
圖1 MapReduce數(shù)據(jù)處理流程
由圖1可知,首先在數(shù)據(jù)輸入端將分布式數(shù)據(jù)庫中的數(shù)據(jù)分解為幾個(gè)splite集合,之后根據(jù)map函數(shù)對splite集合中的數(shù)據(jù)進(jìn)行匹配計(jì)算,匹配后的數(shù)據(jù)經(jīng)過middle result數(shù)據(jù)整合后以函數(shù)形式輸出結(jié)果,最后數(shù)據(jù)經(jīng)過函數(shù)反解,以規(guī)定的表現(xiàn)形式輸出結(jié)果。
數(shù)據(jù)處理的前提是數(shù)據(jù)的安全性問題,為此本文專門開發(fā)了符合數(shù)據(jù)庫特點(diǎn)的數(shù)據(jù)安全訪問流程,如圖2所示。
圖2 數(shù)據(jù)訪問流程
由圖2可知,用戶依次進(jìn)行user權(quán)限、db權(quán)限、tables-prive權(quán)限、columns-prive權(quán)限認(rèn)證,根據(jù)安全等級的不同,采取不同層級的認(rèn)證訪問權(quán)限。
為了對動態(tài)頁面實(shí)現(xiàn)信息采集,需要在動態(tài)頁面和系統(tǒng)數(shù)據(jù)庫間增設(shè)腳本提取系統(tǒng),以處理提取數(shù)據(jù)的臨時(shí)存儲和數(shù)據(jù)篩選交換。
腳本解析系統(tǒng)的工作流程如圖3所示。
圖3 腳本解析流程
由圖3可知,首先在HTML網(wǎng)頁文件中構(gòu)建DOM樹,根據(jù)JavaScript中目標(biāo)信息與DOM樹的關(guān)系,采取二元化的信息處理方式,解析環(huán)境初始化后提取HTML網(wǎng)頁文件中的腳本信息,腳本提取完成后運(yùn)行腳本,若腳本是一個(gè)open()類函數(shù),則保存URL,否則重構(gòu)DOM樹,重復(fù)上述流程。腳本解析的難點(diǎn)是DOM 解析,它的原理是將對象按照模型樹的方式,在HTML網(wǎng)頁文件中將網(wǎng)頁信息用結(jié)構(gòu)化的方式展現(xiàn)。
根據(jù)目前計(jì)算機(jī)軟硬件的發(fā)展特點(diǎn),需要采用有針對性的數(shù)據(jù)調(diào)動方式和程序以克服不同軟件條件下作業(yè)命令和數(shù)據(jù)格式不兼容的弊端[8-9]。本文開發(fā)了適用于動態(tài)信息提取和MySQL數(shù)據(jù)庫特點(diǎn)的MapReduce 調(diào)度算法。算法架構(gòu)如圖4所示。
由圖4可知,作業(yè)池是將所有的工作任務(wù)按照任務(wù)間的邏輯關(guān)系進(jìn)行分類,在同一個(gè)工作任務(wù)下可按照時(shí)間順序、優(yōu)先順序等進(jìn)行任務(wù)細(xì)化分解。實(shí)時(shí)資源列表是為了提高調(diào)度效率設(shè)置的具有列表黑名單功能的信息篩選功能,它是根據(jù)作業(yè)池向資源池發(fā)送的Task Scheduling信息,采用兩次發(fā)送兩次接收的模式,若資源池只收到一次Task Scheduling請求,則表明該節(jié)點(diǎn)是非法的,將其列入黑名單。
圖4 算法架構(gòu)
按照以上算法架構(gòu),建立了調(diào)度算法流程,如圖5所示。
圖5 調(diào)度算法流程
由圖5可知,算法的第一步是選擇最優(yōu)任務(wù),算法按照預(yù)定的規(guī)則將作業(yè)池中的任務(wù)進(jìn)行優(yōu)先級別排序,同時(shí)根據(jù)任務(wù)特點(diǎn)從資源池匹配與之對應(yīng)的節(jié)點(diǎn)。HS調(diào)度判定是作業(yè)任務(wù)和資源節(jié)點(diǎn)間的匹配調(diào)度過程,若資源池中節(jié)點(diǎn)無法匹配任務(wù),則HS調(diào)度判定命令會選擇下一個(gè)緊鄰的任務(wù)進(jìn)行資源池中節(jié)點(diǎn)的匹配。落后任務(wù)判定與推測執(zhí)行是對于級別有所調(diào)整的執(zhí)行任務(wù)進(jìn)行優(yōu)先級別的調(diào)整,并利用資源池節(jié)點(diǎn)進(jìn)行匹配。
腳本提取系統(tǒng)數(shù)據(jù)文件存儲結(jié)構(gòu),如圖6所示。
由圖6可知,crawldb是系統(tǒng)連接的爬行數(shù)據(jù)庫,是對網(wǎng)頁的數(shù)據(jù)采集記錄進(jìn)行跟蹤;jscrawldb數(shù)據(jù)庫包含兩個(gè)子系統(tǒng),是對頁面中JavaScript文件進(jìn)行存儲;Segments數(shù)據(jù)庫是對每一個(gè)完成訪問的頁面進(jìn)行信息存儲,將每一個(gè)頁面存儲生成一個(gè)單獨(dú)的文件;Linkdb是一種網(wǎng)頁鏈接數(shù)據(jù)庫是對所有訪問的網(wǎng)頁地址進(jìn)行存儲。
圖6 數(shù)據(jù)存儲結(jié)構(gòu)
根據(jù)以上腳本提取方式,建立了動態(tài)頁面信息采集系統(tǒng)架構(gòu),如圖7所示。
圖7 動態(tài)頁面信息采集系統(tǒng)架構(gòu)
由圖7可知,首先系統(tǒng)根據(jù)篩選種子從系統(tǒng)白名單中對數(shù)據(jù)進(jìn)行抓取,對于抓取的網(wǎng)頁,利用腳本提取系統(tǒng)對網(wǎng)頁腳本進(jìn)行提取,按照頁面腳本信息對頁面數(shù)據(jù)進(jìn)行解析處理并篩選,最后根據(jù)篩選結(jié)果對篩選數(shù)據(jù)進(jìn)行翻轉(zhuǎn),以數(shù)據(jù)及網(wǎng)頁信息的形式將篩選結(jié)果進(jìn)行保存。
動態(tài)頁面數(shù)據(jù)生成系統(tǒng)是針對音視頻等動態(tài)數(shù)據(jù)進(jìn)行提取的以對象為目標(biāo)的信息捕捉系統(tǒng),根據(jù)系統(tǒng)數(shù)據(jù)處理流程和腳本提取方式對系統(tǒng)的性能進(jìn)行了測試分析,測試中選擇某市科技局網(wǎng)站為對象,對網(wǎng)站中的動態(tài)信息進(jìn)行采集,并與其他采集方式對比。
系統(tǒng)集成模擬系統(tǒng)由4臺并聯(lián)的計(jì)算機(jī)組成。系統(tǒng)測試軟硬件的組成如表1所示。
表1 測試軟硬件
系統(tǒng)完成測試后對科技局網(wǎng)站進(jìn)行了靜態(tài)數(shù)據(jù)提取,提取結(jié)果如圖8所示。
由圖8可知,相比較于動態(tài)網(wǎng)頁數(shù)據(jù),靜態(tài)數(shù)據(jù)提取技術(shù)能有效提取頁面的有效信息。
本文以對比的方式分析了系統(tǒng)在腳本加入前后系統(tǒng)抽取有效信息數(shù)量和提取效率,測試結(jié)果如表2所示。
表2 數(shù)據(jù)提取效果
由表2可知,在抽取網(wǎng)頁總數(shù)和字段總數(shù)相同的前提下,加入腳本提取解析系統(tǒng)后其提取的準(zhǔn)確率上升了32%,而系統(tǒng)消耗的時(shí)間與原來相比只增加9.5%,因此該腳本提取解析系統(tǒng)達(dá)到了預(yù)定功能需求。
隨著動態(tài)網(wǎng)頁信息的豐富,網(wǎng)頁中的數(shù)據(jù)類型也有所豐富,用戶的上網(wǎng)體驗(yàn)效果更佳,與此同時(shí),動態(tài)網(wǎng)頁中的信息采集難度也隨之增加。本文以從分布式數(shù)據(jù)庫為基礎(chǔ),開發(fā)了適用于動態(tài)網(wǎng)頁的腳本解析系統(tǒng)和數(shù)據(jù)調(diào)度方式,在分析了分布式數(shù)據(jù)庫類型基礎(chǔ)上對動態(tài)頁面信息采集系統(tǒng)進(jìn)行了架構(gòu)分析,最后對系統(tǒng)的應(yīng)用效果進(jìn)行了測試,結(jié)果表明加入腳本提取解析系統(tǒng)后其提取的準(zhǔn)確率上升了32%,而系統(tǒng)消耗的時(shí)間與原來相比只增加9.5%。