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