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