趙丹陽
(國(guó)家圖書館,北京 100081)
2022年中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心發(fā)布的第49次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》[1]中顯示,截至2021年12月,全民互聯(lián)網(wǎng)普及率已經(jīng)超過80%,尤其在即時(shí)通信、在線醫(yī)療、遠(yuǎn)程辦公等領(lǐng)域,互聯(lián)網(wǎng)在新冠疫情常態(tài)化防控等方面發(fā)揮了積極作用。網(wǎng)絡(luò)已經(jīng)成為全國(guó)億萬網(wǎng)民衣食住行、獲取信息、在線交流等的重要平臺(tái),互聯(lián)網(wǎng)資源更是成為了人類社會(huì)重要的信息載體,及時(shí)完整地保存網(wǎng)絡(luò)資源,記錄時(shí)代記憶非常重要。但互聯(lián)網(wǎng)信息的體量龐大、結(jié)構(gòu)復(fù)雜、易變易消失等獨(dú)特的資源特性,導(dǎo)致其保存難度極大,因此,準(zhǔn)確有效地保存瞬息萬變的網(wǎng)絡(luò)資源是圖書館工作者在數(shù)字時(shí)代的重要使命。
國(guó)家圖書館自2003年著手對(duì)國(guó)內(nèi)發(fā)生的重要事件和特大事件進(jìn)行專題收集;2007年正式加入國(guó)際互聯(lián)網(wǎng)保存聯(lián)盟(IIPC);2014年聯(lián)合全國(guó)圖書館共同開展網(wǎng)絡(luò)資源的保存和服務(wù);2018年研發(fā)并推廣地方圖書館部署網(wǎng)絡(luò)資源采集和保存平臺(tái),實(shí)現(xiàn)互聯(lián)網(wǎng)資源高效和規(guī)范化的采集、編目、回放、發(fā)布和服務(wù)[2]。經(jīng)過多年探索,在保存策略方面,主要采用全域采集和專題性采集相結(jié)合的采集策略;在采集工具方面,使用IIPC研發(fā)和推廣的開源工具Heritrix進(jìn)行采集、openwayback進(jìn)行數(shù)據(jù)回放、國(guó)際廣泛應(yīng)用的WARC格式[3]進(jìn)行數(shù)據(jù)存儲(chǔ)。截至目前,國(guó)家圖書館已累計(jì)采集保存國(guó)內(nèi)外網(wǎng)站超過5萬余個(gè)、專題網(wǎng)絡(luò)資源超過300個(gè),保存數(shù)據(jù)量達(dá)到300 TB,網(wǎng)絡(luò)采集資源成為圖書館數(shù)字資源建設(shè)的重要組成部分。
基于網(wǎng)絡(luò)資源采集和保存項(xiàng)目的業(yè)務(wù)特點(diǎn)和需求,平臺(tái)選用成熟的開源技術(shù)和工具,并對(duì)開源工具的功能進(jìn)行適當(dāng)調(diào)整,通過一定量的個(gè)性化定制開發(fā)以滿足網(wǎng)絡(luò)資源增量采集、精準(zhǔn)的增量回放等個(gè)性化需求。在此基礎(chǔ)上,整合構(gòu)建成一個(gè)模塊化的、開放架構(gòu)、易于擴(kuò)展升級(jí)的網(wǎng)絡(luò)信息增量采集與保存管理平臺(tái),它既能實(shí)現(xiàn)個(gè)性化的采集策略定制、流程化的完整采集管理和數(shù)據(jù)保存管理等功能,又能提供準(zhǔn)確完整的網(wǎng)頁回放服務(wù)。
平臺(tái)在技術(shù)實(shí)現(xiàn)上,進(jìn)行了多個(gè)個(gè)性化功能的改造和研發(fā),平臺(tái)架構(gòu)如圖1所示。UI交互界面層提供用戶方便快捷、可視化的使用界面;展示層進(jìn)行業(yè)務(wù)請(qǐng)求渲染和交互,采用異步JavaScript和 XML技術(shù),實(shí)現(xiàn)網(wǎng)頁異步更新;服務(wù)層提供任務(wù)管理、性能優(yōu)化模塊、參數(shù)配置、定制模塊等相關(guān)接口;采集層應(yīng)用Heritrix爬蟲,處理抓取、隊(duì)列、監(jiān)測(cè)等核心工作;存儲(chǔ)層校驗(yàn)和保存采集回來的數(shù)據(jù);運(yùn)行環(huán)境支持整個(gè)平臺(tái)的穩(wěn)定運(yùn)轉(zhuǎn)。
圖1 平臺(tái)架構(gòu)
Heritrix爬蟲系統(tǒng)主要由4個(gè)模塊構(gòu)成:Web管理平臺(tái)、編輯處理模塊(邊界控制器Frontier)、線程池和處理器,其工作流程,如圖2所示。管理平臺(tái)通過Web頁面設(shè)置Heritrix的運(yùn)行配置;編輯處理模塊存儲(chǔ)爬取范圍內(nèi)的URI隊(duì)列,根據(jù)調(diào)度策略分配URI到線程池;線程池采用多線程的方式處理URI任務(wù),并將處理后的URI送給預(yù)加載處理器;預(yù)加載處理器主要處理DNS,robots.txt的認(rèn)證,裁定抓取范圍;抓取處理器處理http,dns等協(xié)議;內(nèi)容提取器提取頁面鏈接;寫入鏈以warc或其他格式寫入采集文檔;更新狀態(tài)鏈負(fù)責(zé)更新抓取狀態(tài)及檢查鏈接是否在抓取范圍內(nèi)。處理器通過對(duì)接收到的URI 的預(yù)處理、抓取、過濾等上述系列操作,將篩選出的URI再次送回至邊界處理器,進(jìn)行下一個(gè)操作的循環(huán)。
圖2 Heritrix爬蟲系統(tǒng)工作流程
2.4.1 增量采集技術(shù)的實(shí)現(xiàn)
平臺(tái)的增量采集是在采集整站W(wǎng)eb網(wǎng)頁數(shù)據(jù)基礎(chǔ)上,以采集新出現(xiàn)的和變更的網(wǎng)頁為目標(biāo)的采集。平臺(tái)采用Heritrix 3.4版本進(jìn)行采集程序定制開發(fā),沿用WARC文件格式標(biāo)準(zhǔn),選用默認(rèn)的WARC Writer Processorwen文件處理器,在此基礎(chǔ)上做增量文件的處理。網(wǎng)站增量采集流程,如圖3所示。在采集源分析過程中,平臺(tái)采集程序首先判斷是否需要增量爬取,如果不需要,則進(jìn)入全站抓取業(yè)務(wù)流程。如果判斷需要增量爬取,則需要確定爬取目標(biāo)。先要獲取增量爬取需要比對(duì)的版本號(hào),通過計(jì)算對(duì)當(dāng)前的Crawl URI和版本號(hào)內(nèi)的爬取目標(biāo)進(jìn)行對(duì)比。如果文件存在且大小無變化,則說明爬取對(duì)象不需要增量爬取,直接返回結(jié)束狀態(tài)并跳過;如果文件不存在或文件存在但運(yùn)算結(jié)果發(fā)生了變化,則認(rèn)為需要增量爬取的對(duì)象,需要把采集的URL放入采集隊(duì)列進(jìn)行爬取流程,并且將當(dāng)前版本和URI等對(duì)象信息痕跡進(jìn)行保存。增量采集判斷的業(yè)務(wù)邏輯會(huì)根據(jù)采集源的情況循環(huán)執(zhí)行,直到采集源分析全部完成,進(jìn)入下一個(gè)采集操作流程。
圖3 增量采集流程
增量抓取的任務(wù)要區(qū)分于普通的整站抓取任務(wù),是需要做任務(wù)標(biāo)記的,增量任務(wù)的標(biāo)記過程放在任務(wù)鏈接爬取啟動(dòng)開始前。平臺(tái)中設(shè)計(jì)的增量采集程序,會(huì)在任務(wù)運(yùn)行中檢查job State狀態(tài),增量采集過程中note Frontier State會(huì)調(diào)用接口job狀態(tài)。
2.4.2 增量回顯一站式服務(wù)的實(shí)現(xiàn)
平臺(tái)集采集和回顯一站式服務(wù),采集結(jié)束后,平臺(tái)自動(dòng)針對(duì)當(dāng)前任務(wù)狀態(tài)進(jìn)行變更并對(duì)采集任務(wù)進(jìn)行預(yù)覽發(fā)布,以人工核驗(yàn)方式對(duì)本次采集任務(wù)進(jìn)行審核。圖4是平臺(tái)增量回放模型,平臺(tái)將采集數(shù)據(jù)中的目標(biāo)網(wǎng)站按照URL+批次區(qū)分的方式進(jìn)行索引,索引數(shù)據(jù)庫建立完畢后需將索引記錄進(jìn)行存儲(chǔ)。在檢索過程中,按照目標(biāo)網(wǎng)站的批次索引進(jìn)行相對(duì)應(yīng)的數(shù)據(jù)檢索,并將檢索結(jié)果反饋給前端頁面呈現(xiàn),其中,增量采集數(shù)據(jù)僅建立增量部分?jǐn)?shù)據(jù)的索引。在檢索過程中,可能會(huì)出現(xiàn)歷史網(wǎng)站數(shù)據(jù)本批次不存在的情況,此時(shí)檢索模塊通過自動(dòng)匹配網(wǎng)站歷史批次記錄檢索查詢數(shù)據(jù),以達(dá)到未變化的網(wǎng)址通過歷史數(shù)據(jù)進(jìn)行全站無縫對(duì)接呈現(xiàn),進(jìn)而大幅度地節(jié)省數(shù)據(jù)庫容量和查詢時(shí)間,并減輕了網(wǎng)站冗余。
圖4 增量回放模型
平臺(tái)實(shí)現(xiàn)了靜態(tài)網(wǎng)站的增量采集和回放的一站式管理,采集效率比全站采集明顯提升,保證采集內(nèi)容時(shí)新性的同時(shí),有效地解決了存儲(chǔ)空間不夠和帶寬有限等問題。
從表1中可以看出,在實(shí)際業(yè)務(wù)中,平臺(tái)對(duì)同一網(wǎng)站采用全站采集和增量采集兩種采集方式下,在采集數(shù)據(jù)量、HTML數(shù)量和時(shí)長(zhǎng)上有明顯的差別;兩種采集方式可以較為清晰地看出增量采集效率遠(yuǎn)遠(yuǎn)高于全站采集效率,較為顯著地縮短了采集周期,尤其實(shí)例中北圖文化網(wǎng)站,相比較于社會(huì)媒體網(wǎng)站新華網(wǎng),其網(wǎng)站的更新頻率更低,增量采集效果更明顯。
表1 不同采集方式的效率比對(duì)
本文基于Heritrix 3.4和OpenWayback開源架構(gòu)構(gòu)建了Web增量采集和保存管理平臺(tái),實(shí)現(xiàn)了大部分靜態(tài)網(wǎng)站的增量抓取和增量回放,切實(shí)有效的解決了目前工作中亟待解決的存儲(chǔ)和帶寬問題,縮短了采集周期,保證了采集內(nèi)容的時(shí)新性。但近年來伴隨5G 網(wǎng)絡(luò)的普及和智能終端的發(fā)展,催生出了多樣化的網(wǎng)絡(luò)信息載體形態(tài),這對(duì)網(wǎng)絡(luò)資源的采集又提出了更高要求,網(wǎng)絡(luò)資源保存工作者也應(yīng)該不斷地思考采集業(yè)務(wù)在網(wǎng)絡(luò)資源采集策略、范疇、技術(shù)、知識(shí)挖掘以及服務(wù)模式等方面的優(yōu)化和創(chuàng)新,以提升網(wǎng)絡(luò)資源“保存”與“應(yīng)用”的價(jià)值。