郭曉云



摘 要 詳細闡述網絡資源歸檔格式標準(WARC)的制定背景、發展歷程、特點和優勢,分析了WARC標準的應用情況和生態圈建設,探討了WARC在檔案領域的應用。
關鍵詞 WARC網絡資源歸檔ISO標準 標準應用
Abstract The paper elaborates the background, progress, characteristics and advantages of web resources archiving standard WARC, analyzes the application situation and ecosystem construction of WARC, and explores the application of WARC in archival field.
Keyword WARC; web resources archiving; ISO standard; standard application
WARC(Web ARChive)文件格式標準是由ISO國際標準化組織2009年發布的網絡信息資源存檔格式標準,是面向網絡信息資源長期保存領域唯一的文件格式標準。網絡信息資源是指依托互聯網等大型網絡,以網站、社交媒體等形式發布的信息資源。網絡信息資源存在壽命短、易丟失、不可再生的特點,這意味著如果沒有歸檔保存,這些寶貴的資源將不復存在。網絡資源存檔(Web Archive)的目的就是搶在這些資源消失之前將它們歸檔保存起來,WARC標準則是網絡資源存檔保存封裝格式,用于解決網絡資源格式多樣、聯系復雜等保存問題,目前已廣泛應用在世界各國的數字圖書館、數字檔案館、數字資源倉儲機構中。
一、WARC標準解析
GB/T 33994-2017對WARC格式的描述是:“WARC(Web ARChive)文件格式提供了一個由多個資源記錄(數據對象)連接成一個長文件的協議,其中每個資源記錄由一組簡單文本標頭和任意數據內容塊構成。WARC格式將作為組織、管理和儲存采集來自網絡和其他數以億計的數字資源的一種標準,可用于構建收割、管理、訪問和交換內容等各種應用。”[1]
WARC不僅存儲資源記錄內容本身,還可以存儲附加的元數據,支持重復資源的檢測、資源格式轉換、大資源的分隔存儲等功能。WARC本身只定義了存儲格式標準,WARC文件具體如何存儲、如何解析都取決于軟件的具體實現。
WARC文件主要構成要素是WARC資源記錄,一個文件由若干個WARC資源記錄(warc record)構成,WARC記錄間以兩個空行(CLR)分隔。WARC記錄有多種類型,包括warcinfo、response、resource、request、metadata、revisit、conversion、continuation八種,用于記錄軟件收割網頁時的所有信息,包括訪問請求、元數據等,盡可能完整地保存網絡資源,而不僅僅是網頁內容。
WARC記錄(warc record)由記錄頭(head)和內容塊(block)構成,中間以空行分隔。記錄頭由版本行和若干個warc命名字段(warc-field)及字段值構成(形式如:WARC-Type:request)。版本行說明遵循的WARC標準版本號,如WARC/1.0代表2009版標準,WARC/1.1代表2017版標準。Warc命名字段值列表記錄WARC記錄各種元數據,如WARC-Type:response標識WARC記錄的類型是response,代表Http請求的返回。WARC1.1版提供了21種WARC命名字段,用于描述記錄塊內容、獲取過程、塊間聯系等。每條WARC記錄都會包含記錄編號WARC-Record-ID、記錄類型WARC-Type、記錄日期WARC-Date、內容類型Content-Type、內容長度Content-Length這5個必備字段及其他相關命名字段。內容塊記錄實際的內容,比如response記錄會記錄服務器返回的內容,內容塊格式為UTF-8,如果返回的是二進制內容,會轉換為UTF-8格式。
WARC文件首個WARC記錄的記錄類型是warcinfo,用于記錄整個WARC文件的信息。warcinfo記錄的內容塊主要記錄收割軟件的信息,包括軟件名、收割軟件IP地址、收割軟件機器名、是否遵守機器人協議等。Warcinfo類型記錄塊如圖1所示。
WARC標準通過WARC-Concurrent-To、WARC-Refers-To、WARC-Segment-Origin-ID等特殊的命名字段實現不同記錄塊之間的關聯關系。
以WARC-Concurrent-To為例,如果WARC記錄的WARC-Concurrent-To值相同,則表示這幾條記錄都屬于同一個獲取過程。比如,獲取網頁中的某個資源,則整個過程會產生request請求記錄、response返回記錄、metadata元數據記錄等WARC記錄。其中,request和meatadata記錄的WARC-Concurrent-To字段的值會與response記錄的WARC-Record-ID相等,表示這兩條記錄是response記錄的附加記錄,描述了網絡資源的請求過程和相關元數據,通過這種方式,可以完整地記錄網絡資源的抓取全過程,盡量多地存檔相關數據。
有時候一個抓取過程抓取到的網絡資源可能會分散到多個文件中,為了保持文件之間的聯系,WARC標準建議抓取軟件在除了warcinfo記錄外的所有記錄中添加WARC-Warcinfo-ID,值為抓取過程產生的第一個WARC文件的warcinfo記錄的WARC-Record-ID。
分段功能(segment):分段是指如果抓取的資源過大,超過了WARC文件的大小限制,WARC支持對響應資源進行分段存儲,將內容切分存儲在多個WARC文件中,WARC推薦的上限為1GB。以存檔一個超過1GB的大視頻文件為例,存檔的第一個WARC文件會包含一個response記錄,該記錄的WARC-Target-URI為抓取的視頻資源URL,WARC-Segment-Number字段為1,標識這是分段的第一段。WARC-Payload-Digest為整個視頻文件的校驗摘要,WARC-Block-Digest為該段的校驗摘要。第二個WARC文件會包含后續的分段記錄,記錄的WARC-Type為continuation,表示分段的后續記錄,WARC-Target-URI仍為原視頻URL,WARC-Payload-Digest為整個視頻文件的校驗摘要,WARC-Block-Digest為本段的校驗摘要,WARC-Segment-Origin-ID為第一個分段記錄的WARC-Record-ID,WARC-Segment-Number為2,標識是第二個分段,如果這個分段是最后一個段,則會添加WARC-Segment-Total-Length記錄,標識整個視頻文件的大小。分段記錄示例如圖2所示,左邊為第一個分段記錄,右邊為第二個分段記錄,連線標出了兩個記錄之間的聯系。
去冗余功能(revisit):存檔網絡資源時會經常出現重復資源現象,比如兩個網頁都使用了同一張圖片,如果這些重復資源都存檔,會浪費存儲空間。WARC標準提供了revisit記錄,當軟件進行網絡資源抓取時,通過計算校驗碼發現要存檔的資源是已經存檔過的記錄,則不再重復存儲這個資源,而是新建一條revisit記錄。記錄的WARC-Target-URI為抓取的URL,WARC-Refers-To為已存檔的資源的WARC-Record-ID,WARC-Refers-To-Target-URI為已存檔記錄的WARC-Target-URI,WARC-Refers-To-Date為已存檔記錄的WARC-Date,revisit記錄不記錄內容塊,此時Content-Length為0,也可將內容設置為HTTP/1.x 304 Not Modified消息,Content-Length設為返回內容長度。
轉換功能(conversion):轉換是指格式轉換,WARC存檔的目的是永久保存,在存檔網絡資源時,如果發現要存檔的資源不符合永久保存格式要求,則除了原始資源記錄外,還可以進行格式轉換,并建立conversion記錄。conversion記錄的WARC-Refers-To為原始資源記錄的WARC-Record-ID,WARC-Block-Digest為記錄的校驗碼。除了conversion記錄,還應添加metadata記錄,記錄轉換過程的元數據,包括轉換軟件、轉換時間、原格式、轉換格式等。
壓縮功能(Compression):WARC存檔產生的數據量是很驚人的,以存檔一個百度搜索首頁為例,這是一個包含元素很少的網頁,產生的Warc文件大約有700K左右,復雜的網頁存檔文件會更大。為了節省空間,WARC標準雖然沒有提供內置的壓縮支持,但給出了外部壓縮方案。WARC推薦使用GZIP壓縮算法[RFC 1952],這是一個開源無損壓縮算法,GZIP文件可以由多個獨立壓縮的部分構成,WARC標準建議在壓縮時對WARC文件的每個記錄分別壓縮,這樣在外部索引和訪問時不需要解壓整個WARC文件,不影響檢索效率。WARC收割軟件在生成WARC文檔時可以將WARC記錄逐條使用GZIP算法壓縮,并在索引中記錄WARC的偏移量和大小,最后形成GZIP壓縮形式的WARC文檔,要讀取某條記錄時,通過偏移量和大小直接獲取壓縮后的記錄內容,解壓即可,不影響使用效率。WARC標準建議壓縮后的文件擴展名為“.warc.gz”。
二、WARC標準的應用情況
優秀的標準離不開好的應用環境支持,WARC標準是一套成熟、優秀的存儲格式標準,可用于網絡信息資源的存儲、交換和利用。互聯網保存聯盟IIPC一直在不遺余力地推廣此項標準,構建了成熟的WARC應用生態圈。WARC格式也在IIPC聯盟單位得到廣泛的應用,涌現了許多優秀的Web Archive項目,比較知名的有美國互聯網檔案館IA的Archive-it項目、澳大利亞國家圖書館的澳大利亞網絡文獻資源保管與利用系統PANDORA、日本國立圖書館NDL的長期保存系統WARP、荷蘭國家圖書館主持的網絡化歐洲存儲圖書館項目NEDLIB、英國的網絡信息保存聯盟計劃UKWAC等。
2013年3月,互聯網檔案館IA的Archive-It項目團隊發布了Web Archiving生命周期模型白皮書[2],分享了Archive-It項目及其合作伙伴在Web歸檔領域的實踐經驗和理論總結。Archive-It項目團隊深入剖析總結了哥倫比亞大學圖書館、阿爾伯塔大學圖書館、蒙大拿州立圖書館、北卡州立圖書館、北卡州檔案館、克萊頓大學圖書館六家合作伙伴Web存檔項目建設中的經驗教訓,將技術和管理相結合,提出了網絡資源存檔生命周期模型Web Archiving Life Cycle Model(WALCM),目的是為需要進行網絡資源歸檔的機構提供通用的建設流程和建設模型,WALCM模型如圖3所示。
模型的核心是Web存檔集合,也就是WARC文件集,是Web存檔形成的結果。最外層代表政策(Policy),是指Web存檔活動相關的政策面,如存檔過程涉及的法律法規、存繳制度等,這些都會影響Web存檔的范圍和權限。政策層的下一層是從機構角度理解的Web存檔過程,包括五個方面。一是愿景及目標(Vision and Objectives),即機構進行Web歸檔的目的。二是資源與流程(Resources and Workflow),即機構建設Web歸檔項目可利用的資金、人力、智力、合作方等資源及利用這些資源的方法,其中人力資源尤其重要。三是利用(Access/Use/Reuse),即機構是否需要將存檔資源提供給公眾,如何提供利用,如何管理公眾的利用行為;四是保存(Preservation),即機構如何保存在Web歸檔活動中形成的數據及元數據。五是風險控制(Risk Management),即機構如何處理Web歸檔中存在的風險,包括版權問題、授權問題、利用問題,如在采集過程中是否遵循robots.txt機器人協議等。第三層是元數據與描述層(Metadata/Description),Archive-It團隊將元數據與描述處理從具體環節上升到整個生命周期,目的是強調元數據處理活動是貫穿于Web存檔全過程的,Web文檔資源收集、存儲、分析、利用的全過程都會產生大量元數據,這些元數據都應作為Web記憶的一部分保存下來。第四層是實踐層,即Web存檔需要完成的具體工作,包括五個步驟,分別是選擇與評估、確定歸檔范圍、數據獲取、數據存儲與組織、數據質量管理與分析利用,五個步驟形成一個流程閉環,雖然有些內容是基于Archive-It平臺的使用經驗,但仍然有借鑒意義。
選擇與評估(appraisal and selection)主要是確定采集的網站列表,目前Web存檔主要有兩種策略,一種是全采集策略,即采集所有的網站,如互聯網檔案館采用的就是這種策略;一種是選擇采集策略,即只采集特定的網站或是特定主題和事件相關的網頁,如美國國會圖書館Minerva項目就只收集了2002冬奧會的專題網站。對大部分機構來說,Web歸檔應該采取的都是選擇采集策略,選擇與評估階段主要就是確定要采集的網站URL的列表。確定歸檔范圍(Scoping)用于確定每個網站采集的網頁范圍,是采取全部網頁還是部分網頁。比如,可以只采集網站某個欄目,或是僅僅采集某種類型的文件,如PDF文檔。數據獲取(Data Capture)是指使用爬蟲軟件采集需要的網絡資源,此階段需要考慮爬蟲軟件的具體設置,數據采集的頻率和時間等細節。Archive-It提供的開源爬蟲軟件Heritrix就提供了豐富的定制功能。從統計數據來看,針對不同的采集源機構一般都會設置不同的采集策略,而且數據采集有時候會產生意想不到的結果,如采集的數據容量大大超出原來估計的容量等等,這些都需要在采集過程中不斷調整和干預。存儲與組織(Storage and Organization)是指制訂采集后數據的存儲和管理計劃,包括短期存儲和長期存儲計劃,存儲副本問題,如何建立數據索引等等。數據質量分析(Quality Assurance and Analysis)是指檢查獲取的數據質量和完整性,可以通過查看爬蟲程序生成的抓取報告或是使用Archive-It提供的Wayback回放軟件檢查數據質量,也可以使用相關的軟件工具來進行數據質量鑒定,如北卡州立圖書館就使用了一個開源系統Constraint-Analysis來檢查數據采集結果,該系統可以可視化地展現WARC文檔中的資源,用戶可據此判斷抓取的資源是否在收集范圍內。
目前,WARC應用的研究重點主要集中在以下幾個方面。
一是社交媒體信息的存檔問題。自誕生起,Web存檔的對象主要是各類網站,包括政府網站和商業網站。但隨著社交媒體的出現和廣泛應用,社交媒體逐漸成為網絡信息資源的主要來源,如何存檔這些數字記憶也成為Web存檔領域的研究重點。社交媒體存檔的研究包括存檔的法律法規依據、存檔的意義、存檔的選擇范圍、采集頻率、存檔的技術等。比如Twitter、微博等形式的社交媒體如何存檔問題。微博是指140字內的短網文,支持圖片、視頻,其結構和傳統網頁完全不同,如何處理這種形式變化?最終生成的WARC文件結構如何設計?微博采集的對象如何選擇,是按賬號采集還是按話題采集?采集時只采集微博還是包括微博后面的評論?這些都是需要研究探討和解決的問題。
二是網絡資源采集技術的發展。隨著網絡技術的發展,特別是HTML5標準的推廣,網頁的形式也在發生變化,Javascript腳本、Flash組件、CSS樣式表、HTML5等新的網頁編碼方式和交互設計,流媒體的大量使用等,這些變化導致很多傳統的網絡爬蟲程序失效。新的網絡采集解決方案也在出現,如使用無頭模式的Chrome headless配合Selenium來歸檔Javascript腳本較多的網站,通過虛擬瀏覽器瀏覽行為抓取數據。使用youtube-dl腳本下載流媒體視頻等。
三是與大數據、云計算等新技術的結合。云計算與大數據已成為當前的主流技術,特別是在大規模數據的處理方面。Web歸檔會產生大量的WARC存檔文件,這些文件的存儲、分析、利用等都可以借助云計算和大數據的力量,提高WARC文件處理的效率、WARC數據分析的質量、WARC數據可視化展示效果等。互聯網檔案館提供的WARC開源分析工具ArchiveSpark[3]就使用了大數據軟件框架Spark,可以實現大量WARC數據的處理、提取和分析。
三、WARC標準在我國檔案領域的應用建議
WARC標準雖然在國外應用得非常廣泛,但在國內應用案例并不多。目前,國內WARC標準最大的應用項目是中國國家圖書館的網絡信息資源采集與保存試驗項目(Web Information Collection and Preservation WICP)[4]。該項目2003年開始啟動,目的是對中國境內的互聯網資源進行采集與保存,采用的工具是IIPC提供的Web歸檔工具包,存檔格式為WARC,從項目試驗效果看,雖然IIPC的工具包在中文處理、兼容性等方面存在一些問題,但總體效果比較滿意。2007年,國家圖書館成為IIPC聯盟成員機構。2019年4月,國家圖書館啟動了國家互聯網信息戰略保存項目,旨在建設覆蓋全國的分級分布式中文互聯網信息資源采集與保存體系,仍然沿用WARC格式標準。在檔案領域,目前公開的應用實踐只有2015年河南省鄭州市檔案局(館)進行的政府網站歸檔工作試點[5],試點工作歸檔對象是以gov.cn域名結尾的鄭州市所有政府部門、各級黨委的網站,使用的是互聯網博物館提供的工具包,存檔格式為WARC,并進行了壓縮處理。這次試點重點包括WARC軟件工具使用、網站采集策略制定、WARC存儲管理,試點結果特別指出網站歸檔的速度和存儲容量問題,雖然已經進行了壓縮處理,但對七個政府網站的一次采集,采集數據就達1.5G,因此得出采用云存儲方案的必要性。
WARC標準不僅是優秀的網絡資源長期保存和交換格式,也適用于其他傳統數字對象的長期保存,如丹麥皇家圖書館就曾使用NetArchiveSuite系統將圖像資源保存為WARC格式,取得了很好的效果[6]。WARC被采用為國家標準,目的就是為了有效推動WARC在我國網站資源歸檔和數字對象長期保存領域的應用。
要推動WARC標準及網絡資源歸檔在我國檔案領域的應用,筆者認為可從兩個方面著手。
一是強化政策指引和制度支持。我國檔案領域對于網絡資源歸檔的研究起步較早,2006年,就有檔案學者開始研究網站的歸檔問題。政策層面的起步也較早,2014年底,時任國家檔案局局長楊冬權就提出要盡快啟動各級國家政府網站網頁存檔工作。2016年4月印發的《全國檔案事業發展“十三五”規劃綱要》中明確提出“研究制定重要網頁資源的采集和社交媒體文件的歸檔管理辦法;加強電子檔案長期保存技術研究與應用。”2016年11月,中辦、國辦印發的《國家電子文件管理“十三五”規劃》明確提出“推進政府網頁及電子郵件、音視頻等電子文件歸檔”。2017年5月,國務院下發的國辦發〔2017〕47號《國務院辦公廳關于印發政府網站發展指引的通知》[7]中明確提出了網頁歸檔的要求,“要求政府網站遇整合遷移、改版等情況,要對有價值的原網頁進行歸檔處理。歸檔后的頁面要能正常訪問。”47號文件還規定了網頁標簽規范,“要求政府網站以meta標簽的形式,對網站名稱、政府網站標識碼、欄目類別等關鍵要素進行標記,標簽值不能為空。”這些元數據都是網頁存檔及后續分析利用的基礎。2017年7月,國家標準局將WARC引入國家標準目的就是解決存檔格式問題。對社交媒體的歸檔,2017年實施的《電子文件歸檔與電子檔案管理規范》和2018年印發的《機關檔案管理規定》也都明確提出社交媒體文件應該歸檔。
從政策層面來看,網絡資源歸檔的要求是明確的,目前亟需解決的是配套的實施細則和制度安排問題。實施細則需要重點明確政府網站和政府社交媒體的歸檔范圍,歸檔頻率,歸檔中的元數據采集要求,WARC存檔文件的采集、封裝、元素命名、打包等使用規范,歸檔文件的保管期限、存儲要求,WARC存檔文件的索引、分析、檢索、展現、利用規范等等,為網絡資源歸檔人員提供明確、清晰的操作指導。制度安排方面包括探索建立政府網絡信息存繳制度,明確政府部門與檔案機構在政府網絡信息歸檔活動中的任務分工,變檔案機構被動采集為政府部門主動存繳。制定網絡資源歸檔相關的保障制度,從組織機構、人力、物力等方面給予制度保障。結合國內政府網站及社交媒體的特點,制定相關的政府網站網頁設計規范、元數據標注規范、社交媒體采集規范等歸檔標準規范。
二是加強合作交流與技術引進。網絡資源歸檔工作是一項技術性很強的工作,WARC標準也是一個專業性很強的技術標準。檔案領域要推動網絡資源歸檔工作和WARC標準的應用,應加強國際國內合作交流與技術引進。互聯網保存聯盟IIPC是Web Archiving領域影響最大的國際交流合作平臺,其成員除了部分國家的國家圖書館外,也包含一些檔案機構,如英國國家檔案館(The National Archives,U.K.)。我國國家圖書館已于2007年加入IIPC,檔案界可效仿加入國際檔案理事會的做法,以中國檔案學會的名義申請加入IIPC聯盟,通過IIPC這個國際平臺加強與聯盟機構的合作交流。網絡信息存檔是一項巨大工程,人力、物力、財力耗費巨大。中國國家圖書館作為國內最早使用WARC標準,開展大規模網絡資源歸檔工作的單位,在網絡資源歸檔方面積累了豐富的實踐經驗和研究成果。數字資源長期保存相關的理論與技術也一直是我國圖書館界研究的一個重點,國內部分商業機構也在研發推廣相關的技術產品。檔案界應加強與圖書館界、商業機構的合作和技術交流,做好協作分工。如與國家圖書館互聯網信息戰略保存項目合作,由檔案機構負責政府網站及社交媒體的歸檔工作,國家圖書館及相關機構負責其他網站和社交媒體的歸檔工作,通過WARC標準實行數據對接,共同完成保存中國互聯網數字記憶的任務。在技術上,與國家圖書館和商業機構合作,研發適合我國檔案機構特點的網絡歸檔軟件;指導政府網站發布系統升級改造,實現網頁發布與網頁存檔同步進行,定期由網頁發布系統生成WARC文件并存繳到檔案機構;探索WARC標準與檔案機構大量采用的OAIS參考模型相結合的解決方案等。
參考文獻
[1]中國國家標準化管理委員會.網絡資源存檔格式標準GB/T 33994-2017信息和文獻 WARC文件格式最新發布 [EB/OL].[2017-07-22].https://www.sohu.com/a/159096915_734807.
[2]Archive-It.WAAnnouncing the Web Archiving Life Cycle Model[EB/OL].[2013-03-11].https://archive-it.org/blog/post/announcing-the-web-archiving-life-cycle-model/.
[3] helgeho.ArchiveSpark[EB/OL].[2020-03-11].https://github.com/helgeho/ArchiveSpark.
[4]張煒,張文靜.中國網絡信息采集工作研究現狀分析——以國家圖書館為例[J].圖書館建設,2008(7).
[5]石華.檔案館保存政府網站策略研究——以鄭州市檔案局館為例[J].檔案管理,2016(1).
[6]Mikis Seth Sorensen.NetArchiveSuite[EB/OL].[2020-01-07].https://sbforge.org/display/NAS/NetarchiveSuite.
[7]國務院辦公廳.國務院辦公廳關于印發政府網站發展指引的通知[EB/OL].[2017-05-15].http://www.gov.cn/zhengce/content/2017-06/08/content_5200760.htm.