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