吳云
(懷化職業(yè)技術(shù)學(xué)院 湖南省懷化市 418000)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,Internet 和Web 成為信息數(shù)據(jù)和主要媒介,如何從海量的數(shù)據(jù)中高效率精準(zhǔn)定位到目標(biāo)資源信息成為當(dāng)前研究的互聯(lián)網(wǎng)核心技術(shù)之一,網(wǎng)絡(luò)爬蟲(chóng)技術(shù)應(yīng)運(yùn)而生,但在不同的行業(yè)、技術(shù)背景下信息檢索的技術(shù)標(biāo)準(zhǔn)有所不同,加之目前部分是市場(chǎng)上的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)仍處于技術(shù)框架構(gòu)建階段,對(duì)于網(wǎng)絡(luò)數(shù)據(jù)的整合應(yīng)用還有所不足,數(shù)據(jù)整合力度較低,無(wú)法實(shí)現(xiàn)量化數(shù)據(jù)的整合。因此,本文基于此背景下通過(guò)研究分析分布式智能網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)設(shè)計(jì),以希對(duì)網(wǎng)絡(luò)爬蟲(chóng)的研究與改進(jìn)是具有實(shí)際可鑒價(jià)值。
1.1.1 爬蟲(chóng)基本原理及結(jié)構(gòu)
網(wǎng)絡(luò)爬蟲(chóng)是在HTTP 協(xié)議基礎(chǔ)上衍生的計(jì)算機(jī)程序,如萬(wàn)維網(wǎng)每個(gè)網(wǎng)頁(yè)都會(huì)有對(duì)應(yīng)的URL 標(biāo)識(shí),各個(gè)網(wǎng)頁(yè)之間借助URL 互連在一起,形成巨大的網(wǎng)絡(luò)體系。網(wǎng)絡(luò)爬蟲(chóng)通過(guò)交織URL 路徑,一句規(guī)定的協(xié)議要義,借助HTTP 來(lái)實(shí)現(xiàn)數(shù)據(jù)的整合應(yīng)用,如網(wǎng)頁(yè)數(shù)據(jù)的獲取、URL 和數(shù)據(jù)的整合應(yīng)用等。
1.1.2 禮貌采集
網(wǎng)絡(luò)爬蟲(chóng)借助HTTP 來(lái)實(shí)現(xiàn)數(shù)據(jù)的整合應(yīng)用,如網(wǎng)頁(yè)數(shù)據(jù)的獲取、URL 和數(shù)據(jù)的整合應(yīng)用等。這樣會(huì)不同程度造成爬蟲(chóng)會(huì)對(duì)不同對(duì)象目標(biāo)進(jìn)行獲取,最終會(huì)導(dǎo)致各個(gè)終端應(yīng)用界面大量被訪問(wèn),此時(shí)網(wǎng)絡(luò)爬蟲(chóng)通過(guò)調(diào)控各個(gè)頁(yè)面數(shù)據(jù)來(lái)實(shí)現(xiàn)對(duì)頁(yè)面的分布式管理,其中涉及有數(shù)據(jù)庫(kù)層面、文件管理系統(tǒng)方面以及各個(gè)接口技術(shù)等信息數(shù)據(jù)。
網(wǎng)絡(luò)爬蟲(chóng)主要對(duì)象是通過(guò)HTTP 來(lái)對(duì)目標(biāo)對(duì)象進(jìn)行實(shí)時(shí)訪問(wèn),在此過(guò)程中爬蟲(chóng)數(shù)據(jù)需要對(duì)多個(gè)數(shù)據(jù)點(diǎn)進(jìn)行實(shí)時(shí)訪問(wèn),此過(guò)程必然會(huì)占用大量的服務(wù)器,大量的時(shí)間資源被消耗,網(wǎng)站的服務(wù)能力也隨之被影響,。所以,網(wǎng)絡(luò)爬蟲(chóng)采集的效率在實(shí)時(shí)過(guò)程中需要考慮網(wǎng)站自身的服務(wù)功耗,隨之進(jìn)行禮貌采集。
1.1.3 網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)
爬蟲(chóng)的的功能就是通過(guò)采集網(wǎng)上數(shù)據(jù),基于采集數(shù)據(jù)方式、目標(biāo)的不同,可將網(wǎng)絡(luò)爬蟲(chóng)可分為通用網(wǎng)絡(luò)爬蟲(chóng)、聚焦網(wǎng)絡(luò)爬蟲(chóng)、深層網(wǎng)絡(luò)爬蟲(chóng)。
考慮當(dāng)前網(wǎng)絡(luò)信息數(shù)據(jù)的時(shí)效性和數(shù)據(jù)量的倍增,單純的單片機(jī)爬蟲(chóng)系統(tǒng)難以實(shí)現(xiàn)對(duì)量化數(shù)據(jù)的檢索和收集。因此本文基于不同機(jī)器分布式管理模塊下來(lái)對(duì)網(wǎng)站進(jìn)行批量化采集。
為實(shí)現(xiàn)系統(tǒng)的智能化功能,本爬蟲(chóng)系統(tǒng)從兩個(gè)方面來(lái)體現(xiàn)系統(tǒng)的智能化特點(diǎn)。
(1)適用于量化數(shù)據(jù)較小,頁(yè)面緩存數(shù)據(jù)較低的對(duì)象需要按照對(duì)應(yīng)的算法,實(shí)現(xiàn)對(duì)站點(diǎn)網(wǎng)頁(yè)DOM 模型的定義并自動(dòng)匹配種子URL,采集對(duì)應(yīng)的數(shù)據(jù)信息,實(shí)現(xiàn)對(duì)種子頁(yè)面的優(yōu)化匹配。
(2)對(duì)爬蟲(chóng)服務(wù)節(jié)點(diǎn)數(shù)據(jù)的獲取,按照對(duì)應(yīng)的法則模塊,實(shí)現(xiàn)對(duì)爬蟲(chóng)節(jié)點(diǎn)數(shù)據(jù)的智能化收取,通過(guò)對(duì)各爬蟲(chóng)服務(wù)節(jié)點(diǎn)的日志及系統(tǒng)測(cè)試,結(jié)合相應(yīng)的異常處理規(guī)則,實(shí)現(xiàn)對(duì)整個(gè)爬蟲(chóng)服務(wù)節(jié)點(diǎn)的智能管理。其中主要包括對(duì)系統(tǒng)中的某些異常節(jié)點(diǎn)的服務(wù),進(jìn)行任務(wù)轉(zhuǎn)移并根據(jù)預(yù)定義規(guī)則進(jìn)行自動(dòng)恢復(fù)處理,若恢復(fù)失敗將最終提出人工維護(hù)處理請(qǐng)求。
網(wǎng)絡(luò)爬蟲(chóng)中常用的拓?fù)浣Y(jié)構(gòu)主要包括以下功能模塊。這些部分根據(jù)功能屬性構(gòu)架出系統(tǒng)整理框架。
2.3.1 爬蟲(chóng)管理模塊
2.3.2 種子調(diào)度模塊
種子調(diào)度模塊獲取方式是從數(shù)據(jù)庫(kù)中讀取所需要的種子,并按照協(xié)議要義并入調(diào)度欄中,經(jīng)種子系統(tǒng)對(duì)其進(jìn)行數(shù)據(jù)預(yù)分析后,形成新的頁(yè)面數(shù)據(jù)URL 并進(jìn)行動(dòng)態(tài)協(xié)調(diào)管理,完成對(duì)種數(shù)據(jù)的優(yōu)化配置。
2.3.3 種子分析模塊
種子數(shù)據(jù)分析主要的任務(wù)是對(duì)種子進(jìn)行模塊化定義和處理,隨后以相同模式協(xié)議進(jìn)行并入種子庫(kù)中。具體涉及應(yīng)用層面主要包含以下2 個(gè)步驟:
(1)借助優(yōu)化算法對(duì)種子頁(yè)面進(jìn)行抽象化模型構(gòu)建;
(2)對(duì)模型進(jìn)行URL 抽取,并去除和協(xié)議不同的數(shù)值標(biāo)簽,形成新的采集任務(wù)。
2.3.4 網(wǎng)頁(yè)下載模塊
根據(jù)URL 及導(dǎo)航腳本信息并獲取網(wǎng)頁(yè)數(shù)據(jù)的元數(shù)據(jù)和種子文件,隨后處理后對(duì)種子數(shù)進(jìn)行禮貌采集、調(diào)度和分析。同一個(gè)服務(wù)終端只可以被對(duì)應(yīng)的采集系統(tǒng)進(jìn)行屏蔽,根據(jù)任務(wù)隊(duì)列的量化數(shù)據(jù)的大小實(shí)現(xiàn)對(duì)線程的多模塊化控制和處理。
網(wǎng)頁(yè)下載服務(wù)通過(guò)URL 進(jìn)行頁(yè)面下載,這時(shí)就會(huì)對(duì)鏈接中的域名進(jìn)行解析。DNS 緩存模塊就是為系統(tǒng)中的所有下載服務(wù)節(jié)點(diǎn)提供DNS 解析及緩存管理,盡可能減少DNS 解析的網(wǎng)絡(luò)開(kāi)銷(xiāo)加快爬蟲(chóng)系統(tǒng)的下載速度。
2.3.6 URL 去重模塊
為防止爬蟲(chóng)對(duì)網(wǎng)絡(luò)站點(diǎn)頁(yè)面的多次采集,達(dá)到新增頁(yè)面的多樣化采集。
2.3.7 頁(yè)面調(diào)度模塊
頁(yè)面調(diào)度模塊需要從不同的節(jié)點(diǎn)數(shù)據(jù)上對(duì)頁(yè)面進(jìn)行分批次采集,并將采集的數(shù)據(jù)點(diǎn)依次輸送至對(duì)應(yīng)的頁(yè)面抽取模塊上,達(dá)到對(duì)頁(yè)面的動(dòng)態(tài)采集。
2.3.8 系統(tǒng)監(jiān)控模塊
系統(tǒng)監(jiān)控模塊需要對(duì)服務(wù)節(jié)點(diǎn)進(jìn)行功能化監(jiān)控,并根據(jù)對(duì)應(yīng)的協(xié)議要義進(jìn)行節(jié)點(diǎn)數(shù)據(jù)的的獲取和修復(fù),如修復(fù)難度大,需要發(fā)送至對(duì)應(yīng)的人工維護(hù)對(duì)象,進(jìn)行人工化處理。
圖1:壓力測(cè)試的頁(yè)面截圖
從數(shù)據(jù)的驗(yàn)證、數(shù)據(jù)分析,業(yè)務(wù)邏輯分析方面都需要對(duì)功能數(shù)據(jù)進(jìn)行分析,具體到爬蟲(chóng)系統(tǒng)分布式管理,系統(tǒng)功能測(cè)試主要側(cè)重以下三個(gè)部分,如功能的便攜性、表單數(shù)據(jù)提交以及數(shù)據(jù)關(guān)聯(lián)等;
(1)功能的便攜性測(cè)試:功能測(cè)試并不能依托于單個(gè)功能的大型,其中包括各個(gè)操作模塊是否能進(jìn)行單個(gè)操作,進(jìn)而完善系統(tǒng)的簡(jiǎn)單化,達(dá)到便攜性目的。
講武堂的師資力量很受學(xué)者關(guān)注,以辛亥革命前的三期為例,已知擔(dān)任教官的40人中,日本各學(xué)堂畢業(yè)者有28人,其余的人,有4位出自國(guó)內(nèi)最高學(xué)府北京京師大學(xué)堂,2位出自越南法國(guó)人辦的巴維學(xué)校,還有6人情況不明。其中,擔(dān)任軍事教學(xué)的23人中,有21位畢業(yè)于日本陸軍士官學(xué)校,另外2人畢業(yè)于日本陸軍測(cè)量學(xué)校。軍事課程,基本上被從日本歸國(guó)的留學(xué)者包攬。
(2)表單數(shù)據(jù)提交:系統(tǒng)數(shù)據(jù)的傳遞過(guò)程都是通過(guò)表單來(lái)完成并輸送至數(shù)據(jù)庫(kù)中;按照對(duì)應(yīng)數(shù)據(jù)的結(jié)果會(huì)提交給用戶;其中主要包括數(shù)據(jù)的提交、驗(yàn)證、分析以及各個(gè)子功能模塊間的協(xié)作等進(jìn)行測(cè)試驗(yàn)證。
壓力測(cè)試主要目的是通過(guò)模擬用戶的在線人數(shù)量來(lái)檢測(cè)系統(tǒng)對(duì)量化數(shù)據(jù)沖擊的承受力;隨著在線人數(shù)的急劇增大,頁(yè)面響應(yīng)時(shí)間也會(huì)飛速增長(zhǎng)。TTP 響應(yīng)時(shí)間與點(diǎn)擊次數(shù)以及吞吐量都可依次表現(xiàn)壓力測(cè)試性能優(yōu)良。
為使系統(tǒng)穩(wěn)定、可靠進(jìn)行,在系統(tǒng)被開(kāi)發(fā),都需要對(duì)系統(tǒng)進(jìn)行壓力測(cè)試,主要利用大量的重復(fù)性操作測(cè)試系統(tǒng)能否穩(wěn)定的應(yīng)對(duì),是否會(huì)出現(xiàn)系統(tǒng)崩潰、卡頓這些非常不好的現(xiàn)象。
圖1 為響應(yīng)時(shí)間曲線,在并發(fā)數(shù)為2 萬(wàn)的情況下,平均響應(yīng)在0.001 秒以下,在12 分鐘時(shí)結(jié)束壓力測(cè)試,則表明系統(tǒng)的數(shù)據(jù)緩存量,系統(tǒng)兼容性都非常的優(yōu)良,測(cè)試過(guò)程未出現(xiàn)系統(tǒng)崩潰、卡頓現(xiàn)象,完全滿足高等院校規(guī)模的應(yīng)用。
系統(tǒng)平臺(tái)目前有2 中不同類(lèi)型的權(quán)限管理測(cè)試,可分為橫縱向越權(quán)操作。橫向操作主要測(cè)試的目標(biāo)是和其具有相同屬性、權(quán)限用戶的資源;縱向操作主要測(cè)試目標(biāo)比其具有相同屬性、權(quán)限較高用戶的資源;權(quán)限管理測(cè)試更多的是進(jìn)行人工預(yù)判,基于測(cè)試人員理解測(cè)試業(yè)務(wù)系統(tǒng)的邏輯處理流程,并在此基礎(chǔ)上進(jìn)行如下測(cè)試。
3.3.1 橫向測(cè)試實(shí)例
(1)測(cè)試用例名稱(chēng):使用者橫向操作測(cè)試
(2)測(cè)試目標(biāo):發(fā)現(xiàn)頁(yè)面中存在的橫向越權(quán)操作。
(3)測(cè)試條件:
對(duì)已知的頁(yè)面數(shù)據(jù)(網(wǎng)頁(yè)數(shù)據(jù)http://www.xxx.com/www),提交參量中如有用戶A 以及標(biāo)志B,A 同級(jí)別權(quán)限的用戶B 測(cè)試用機(jī)安裝了WebScarab 軟件)。
執(zhí)行步驟:運(yùn)行對(duì)應(yīng)的腳本文件。并進(jìn)行標(biāo)簽屬性定義,打開(kāi)對(duì)應(yīng)的服務(wù)器網(wǎng)站,更改修正代理地址并配置數(shù)字屬性,用戶A登陸到Web 應(yīng)用,進(jìn)入網(wǎng)頁(yè)頁(yè)面數(shù)據(jù)提交、修正。
(4)預(yù)期結(jié)果:服務(wù)器返回操作失敗或者以u(píng)serA 的用戶身份操作。
橫向測(cè)試的兩個(gè)實(shí)例在本測(cè)試類(lèi)別中同樣使用,僅僅需要對(duì)用戶身份進(jìn)行權(quán)限測(cè)試并根據(jù)測(cè)試屬性方式不同得到不同測(cè)試結(jié)果。、
3.3.2 縱向測(cè)試實(shí)例
(1)測(cè)試用例名稱(chēng):基于菜單URL 的測(cè)試。
(2)測(cè)試目的:比其具有相同屬性、權(quán)限較高用戶的資源
(3)測(cè)試條件:Web 正常(管理權(quán)限等級(jí)不同)
(4)執(zhí)行步驟:以管理權(quán)限等級(jí)較高的身份登錄Web 網(wǎng)站,進(jìn)行源文件數(shù)據(jù)的查詢(xún),查找URL 鏈接,觀察普通用戶是否能夠順利進(jìn)入“用戶管理”頁(yè)面,并進(jìn)行用戶管理操作。
(5)預(yù)期結(jié)果:普通用戶未授權(quán)難以通過(guò)URL 進(jìn)行訪問(wèn)。
隨著互聯(lián)網(wǎng)技術(shù)融合發(fā)展,如何從海量的數(shù)據(jù)中高效率精準(zhǔn)定位到目標(biāo)資源信息成為當(dāng)前研究的互聯(lián)網(wǎng)核心技術(shù)之一;本文通過(guò)研究分析分布式智能網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)設(shè)計(jì);以希達(dá)到數(shù)據(jù)采集策略、數(shù)據(jù)抽取、數(shù)據(jù)存儲(chǔ)、系統(tǒng)檢測(cè)等方面高度自動(dòng)化匹配。本文通過(guò)基于相關(guān)機(jī)器學(xué)習(xí)的算法進(jìn)行分析,基于異常處理規(guī)則通過(guò)對(duì)各爬蟲(chóng)服務(wù)節(jié)點(diǎn)的系統(tǒng)測(cè)試實(shí)現(xiàn)對(duì)整個(gè)爬蟲(chóng)節(jié)點(diǎn)的智能化管理。以希對(duì)網(wǎng)絡(luò)爬蟲(chóng)的研究與改進(jìn)是具有實(shí)際可鑒價(jià)值。