高 婷,白如江
當今社會互聯網信息技術飛速發(fā)展,隨著網絡信息資源數量和種類飛速增加,網絡信息資源逐漸變?yōu)槿祟悢底治幕z產中重要的組成部分。由于網絡信息資源具有更新快、易丟失的特點,導致其消亡的速度很快,特別是一些重要的歷史性的網頁信息會隨著網頁的消失而丟失,這些信息如果消失就難以找回或復原,從而造成難以估量的損失。
2015年,互聯網數據傳輸協議的締造者之一,谷歌副總裁溫特·瑟夫(Vint Cerf)指出了一個令人們?yōu)橹活澋膽n慮,他擔心隨著數字技術的不斷迭代演化,今天人類保存在互聯網上的圖片、文檔或文件等信息可能徹底丟失,在進入一個“數字黑暗時代”后,未來的人類可能根本沒有關于21世紀的歷史記錄。
美國數字信息基礎架構和保存項目(NDllP)的報告中指出,網絡信息的平均壽命為44天,這就導致相當一部分有價值的網絡信息資源面臨著消失的危險[1]。由此來看,人類將失去大量具有重要價值的學術、文化、科學信息。隨著對網絡信息資源保存的認識日益深入,越來越多的國家政府和機構將網絡信息資源作為文化遺產進行保存。
目前,世界各國的政府、組織、機構紛紛開始開展與Web Archive相關的研究和實踐,其中,美國、加拿大、西班牙和澳大利亞等國家的政府、檔案館和圖書館對網頁歸檔的研究和實踐應用較多。
在國內,對Web Archive進行研究的項目主要有中國國家圖書館網絡信息資源保存實驗(Web Information Collection and Preservation,WICP)和中國Web信息博物館兩個項目。且中國國家圖書館網絡資源保存實驗不完全針對網頁歸檔,其主要研究是對電子資源的一個保存歸檔,只有“中國Web信息博物館”是在國家“973計劃” 和“985工程 ”項目支持下,由北京大學計算機系網絡與分布式系統(tǒng)實驗室開發(fā)建設的中國網頁歷史信息存貯與展示系統(tǒng)[2]。國內對網頁歸檔的研究與應用開展較晚,與國外差距比較大。國內Web 信息的特殊價值和作用使國內科研機構對這方面的研究和實踐日益重視。2014年11月,國家檔案局局長楊冬權在會見阿里巴巴集團副總裁兼“阿里云”總裁胡曉明及其團隊時表示,將盡快啟動為各級國家政府網站網頁存檔工作[3]。
我們在國內外現行網絡歸檔研究項目的基礎上,借鑒國內外網絡信息資源采集工具的先進技術[4-5],針對我國網絡資源增量采集過程中遇到的困難,提出一種網頁歸檔的增量采集方案。
在美國,1996年成立了“互聯網檔案館”(Internet Archive),致力于實現全球互聯網信息的收集、存儲和獲取。目前檔案館從不同領域超過2億個網站和40多種語言中挑選出來的各類項目已收錄超過3510億個網頁。此外還有大量的視頻、音頻、軟件和電子書。該互聯網檔案館數據庫隨著因特網的擴展而擴展,每月增長近100TBs(壓縮)。通過Wayback使Web集合平均處理每秒400~500個請求。
2003年,由12個國家機構共同成立了國際互聯網保存聯盟(IIPC),中國國家圖書館也在2007年加入了該聯盟。其最初的協議有效期為三年,會員資格僅限于特許機構。IIPC現在向世界各地的圖書館、檔案館、博物館和文化遺產機構開放。IIPC成員來自45個國家,其主要包括國家、大學和地區(qū)圖書館和檔案館。
IIPC的使命是為世界各地的后代獲取、保存和利用互聯網上的知識和信息,促進全球交流和國際關系。為實現其使命,IIPC正在努力實現三個目標:一是使來自世界各地的豐富互聯網內容的收集得以保存,從而能夠隨著時間的推移進行存檔、保護和訪問;二是促進開發(fā)和使用能夠創(chuàng)建國際檔案的常用工具、技術和標準;三是鼓勵和支持各地的國家圖書館、檔案館和研究機構處理互聯網存檔和保存問題。
目前,大多數國家的圖書館和檔案館都與國際互聯網保存聯盟IIPC進行合作。IIPC資助開發(fā)了一些開源的網頁篩選、采集、保存和網頁回放工具,這些工具已經在一些國家的圖書館和檔案館廣泛應用。以IIPC為主的各成員通過分享數據和測試工具在研究和發(fā)展項目中進行合作,IIPC根據年度征求建議書中列出的目標去資助技術和教育項目。該聯盟還通過共享數據和測試工具在研發(fā)項目上進行合作,成立專責小組以研究特定問題或提出建議。
以下是三個典型的IIPC合作項目。
1.第一次世界大戰(zhàn)紀念網保存項目
第一次世界大戰(zhàn)紀念網項目是建立與第一次世界大戰(zhàn)有關的網站集合,它包括標志戰(zhàn)爭一百周年的網站和事件以及一般研究第一次世界大戰(zhàn)的網站和事件。該項目旨在收集包括一系列不同類型的網站,從官方紀念活動到業(yè)余歷史網站,以及在媒體上報道百年紀念。目前,來自幾個不同國家和多種語言的網站已被國際互聯網保護聯盟的成員圖書館選中,以提供關于戰(zhàn)爭百年紀念的跨國視角。
第一次世界大戰(zhàn)紀念網項目存檔從2015年10月開始,目前共有2540條網站結果,每一條結果包含以下內容:
網址:http://10158d.esidoc.fr/rubrique/view/id/74?feature=website
在2015年11月16日和2018年12月20日這段時間內捕獲了6次,包含5個視頻捕獲。
視頻:5個視頻捕獲
語言:法語
覆蓋范圍:南比利牛斯(法國地區(qū))
關鍵詞為“公共:教育”
網站類型:公共類
國家:法國
文件格式選擇:所有格式、HTML、純文本、PDF、Postscript、Word
每條記錄會提供具體捕獲的網頁存檔,如圖1所示。

注:*表示頁面更新時間。
2.Twittervane評估項目
英國圖書館在IIPC的資助下開發(fā)了一個名為原型應用程序Twittervane,該應用程序能夠分析Twitter提要并確定在給定時間段內圍繞給定主題最常共享的網站。然后,這些網站可以作為網絡存檔的潛在標題呈現給管理者,從而節(jié)省了手動選擇所需的時間和精力。
大英圖書館在2012年大會上展示了Twittervane,并向IIPC成員提供了Twittervane的源代碼。來自三個國家圖書館的負責人探索并測試了該應用程序,提供了非常有用的反饋。大多數參與評估的負責人都對Twittervane方法持肯定態(tài)度,并將其視為一種補充選擇工具,特別是對于基于事件的集合。
(1)Twittervane系統(tǒng)有2個優(yōu)點
第一,允許歸檔機構更快地響應突發(fā)或零星事件。
第二,利用網站的普及作為選擇標準,利用人群的智慧,為網絡存檔增加社交方面的內容。
(2)Twittervane有3個服務組件
第一,TweetView組件提供用于創(chuàng)建和報告Web集合的管理和報告功能。
第二,TweetStreamAgent提供用于管理來自Twitter的入站推文數據的UI和服務。
第三,TweetAnalyser對與Tweet相關聯的縮短URL執(zhí)行URL擴展,將Tweet解析為Web集合并管理Tweets的存儲。
Twittervane各部分的結構關系的展示如圖2。

圖2 Twittervane各部分之間的結構關系
(3)Twittervane主要存在的問題
第一,不允許將收集的推文存儲在普通的JSON文件中執(zhí)行大規(guī)模分析。
第二,沒有數據清理功能,自動刪除舊的分析推文。
第三,缺乏自動化后臺流程以分析和處理捕獲的推文。
第四,沒有增量采集功能。
3.Memento項目
Memento的目標是希望能夠像訪問當前的網頁一樣直接訪問過去的網頁。具體來說是使用Memento可以訪問過去某個日期存在的網頁資源版本,方法是像往常一樣在瀏覽器中輸入該資源的HTTP地址,并在瀏覽器插件中指定所需的日期。顯然,如果某些資源不存在,將只能看到舊版本的資源。例如,在網頁存檔或內容版本控制系統(tǒng)中將會出現這種情況。但是如果存在舊版本,并且如果這些資源由支持Memento協議的服務器托管,我們就能無縫地訪問它們。
該項目的其他目標主要還有:
第一,聚合IIPC的分布式檔案的元數據。
第二,提供基于Memento的開放檔案館藏訪問權限。
第三,提供有限檔案館藏的知識。
第四,向IIPC成員提供IIPC的全封閉檔案初始演示的知識。
Memento項目的主要參與者有:奧地利國家圖書館、國會圖書館、大英圖書館、瑞士國家圖書館、北德克薩斯大學等。
Memento項目在技術架構方面,提出了基于時間訪問資源狀態(tài)的HTTP框架。基于HTTP的Memento框架橋接了當前和過去的Web。它通過引入日期時間協商和TimeMaps來促進獲得給定資源的先前狀態(tài)表示。日期時間協商是內容協商的變體,它利用給定資源的URI和用戶代理的首選日期時間。TimeMaps是枚舉封裝給定資源先前狀態(tài)的資源URI列表。
該框架還有助于識別封裝另一資源的凍結先前狀態(tài)的資源。
第一,日期時間協商:它是內容協商的變體,通過該變體,用戶代理表達與原始資源的表示有關的日期時間偏好,而不是例如媒體類型偏好。基于響應服務器對原始資源的過去的了解,它選擇最符合用戶代理的日期時間偏好的原始資源的Memento。
第二,TimeMaps:TimeMap是一種資源,可以從中獲取列表,提供原始資源過去的全面概述。服務器使TimeMap可用,枚舉服務器知道的所有Mementos及其歸檔日期時間。用戶代理可以獲取TimeMap并從中選擇Mementos。
Memento框架定義了三種類型的資源:Original Resource,Memento和TimeGate。
第一,Original Resource:先前版本的實時Web上存在或曾經存在的Web資源。先前版本是指在過去的某個時間封裝原始資源的Web資源。
第二,Memento:一種Web資源,它是原始資源的先前版本,即封裝了過去某個時間原始資源的樣子。
第三,TimeGate:一種基于給定日期時間“決定”的Web資源,Memento最能匹配給定日期時間周圍的原始資源。
圖3提供了Memento框架如何允許訪問資源的先前版本的架構概述。

圖3 Memento框架允許訪問資源的先前版本架構概述
為了允許HTTP客戶端訪問原始資源(URI-R)的先前/存檔版本,該資源提供HTTP鏈接頭,其關系類型為“timegate”,指向其TimeGate(URI-G)。TimeGate支持日期時間維度中的內容協商。在與TimeGate協商時,HTTP客戶端使用Accept-Datetime標頭來表示URI-R的先前/存檔版本的所需日期時間。TimeGate響應匹配版本的位置,名為Memento(URI-M1或URI-M2),允許HTTP客戶端訪問它。使用Memento-Datetime標題,Mementos表達他們的版本/存檔日期時間。
關系類型為“原始”的HTTP鏈接頭從TimeGate和Mementos返回到原始資源,允許HTTP客戶端回溯其步驟。Memento可以使用關系類型為“memento”的HTTP Link標頭指向其他Mementos。它可以指向其時間上相鄰的Mementos,它分別結合了“prev”和“memento”關系,以及“next”和“memento”關系。
TimeGate和Memento都可以分別通過組合“first”和“memento”關系以及“l(fā)ast”和“memento”關系,使用HTTP鏈接頭指向URI-R的第一個和最后一個Memento。每當 “memento”關系類型在HTTP鏈接頭中表示的鏈接中使用時,它必須附帶一個“datetime”屬性,該屬性傳遞鏈接Memento的存檔日期時間。
通過上述項目調研分析發(fā)現,目前Web Archive工作中最主要的困難是關于信息增量采集的問題,也就是說在不影響網絡信息采集質量和全面性的基礎上,如何實現避免因重復搜集未變化的網頁而帶來時間上的浪費。我們在前期調研基礎上發(fā)現OutbackCDX(1)Outbackcdx[EB/OL].https://github.com/nla/outbackcdx/blob/master/README.md.、UKWA-Heritrix(2)Ukwa-heritrix[EB/OL].https://github.com/ukwa/ukwa-heritrix.兩個工具的有機結合可以滿足網頁動態(tài)采集需求。
Web信息增量采集的主要思路是維護一個增量采集數據庫,該增量采集數據庫記錄著每個資源的歷史記錄,這樣可以用于確定等待獲取的資源的優(yōu)先級隊列中的順序。利用自適應重新訪問技術更準確地捕獲其范圍內在線資源的變化,從而使爬蟲程序能夠更頻繁地重新訪問每個頁面。此外,重新訪問不受爬行周期的約束,因為任何頁面都可以在任何時間出現進行重新訪問,而不是在爬蟲運行期間僅出現一次。
根據上述總體思路,我們運用與需求結合比較成熟的Heritrix和OutbackCDX工具實現網絡信息增量的采集。
OutbackCDX是一個基于rocksdb的捕獲索引(cdx)服務器,能夠支持增量更新和壓縮。可以用作OpenWayback、PYWB和Heritrix的后端。我們采用OutbackCDX作為增量采集數據庫,用來記錄抓取資源的歷史信息。因為該數據庫可以實時增量更新。
OutbackCDX的主要特征有:
1.同時支持OpenWayback(XML)和PyWb(JSON)CDX協議;
2.可以實現實時,增量更新;
3.能夠壓縮索引(varint packing + snappy),通常是CDX文件大小的1/4 ~1/5;
4.可以進行訪問控制。
可以在https://github.com/nla/outbackcdx/網站上下載OutbackCDX并安裝,安裝好OutbackCDX后就可以加載爬行數據了。OutbackCDX不包括用于讀取WARC或ARC文件的CDX索引工具。因此,需要使用OpenWayback或PYWB附帶的CDX索引器腳本。可以通過在(11-field)cdx格式的wayback中發(fā)布記錄,將記錄加載到索引中,具體實現方法如下:
$ cdx-indexer mycrawlw.warc.gz > records.cdx
$ curl-X POST--data-binary @records.cdx http://localhost:8080/myindex
Added 542 records
如果需要刪除數據,可以執(zhí)行以下代碼:
$ curl-X POST--data-binary @records.cdx http://localhost:8080/myindex/delete
Deleted 542 records
查詢數據代碼:
$ curl 'http://localhost:8080/myindex?url=example.org'
org,example)/20030402160014 http://example.org/text/html 200 MOH7IEN2JAEJOHYXIEPE
EGHOHG5VI===--2248 396 mycrawl.warc.gz
查詢出的數據是json格式,如下所示:
$ curl 'http://localhost:8080/myindex?url=example.org&output=json'
[
[
"org,example)/",
20030402160014,
"http://example.org/",
"text/html",
200,
"MOH7IEN2JAEJOHYXIEPEEGHOHG5VI
===",
2248,
396,
"mycrawl.warc.gz"
]
]
UKWA-Heritrix在Heritrix做了部分功能擴展,UKWA-Heritrix項目包含了一些類,這些類允許OutbackCdx用作Heritrix爬行的重復數據源。因此可以借助UKWA-Heritrix結合OutbackCdx實現網絡信息的增量爬取。
UKWA-Heritrix主要功能還是網絡爬蟲功能。其主要工作原理是從一個或若干初始網頁的URL開始,利用HTTP等標準協議讀取文檔,將文檔中所包括的URL放入URL隊列中,然后從隊列中新的URL處開始進行漫游,把爬過的網頁搜集起來,直到沒有滿足條件的新的URL為止。
UKWA-Heritrix與Heritrix的組織結構基本一致如圖4所示,包含了整個組件和抓取流程。

圖4 UKWA-Heritrix系統(tǒng)架構
Heritrix自帶了部分用于主題增量爬蟲抓取方案,比如:
1.將不需要爬取的URL寫入Heritrix的log文件recover.gz中。該文件自動記錄了已抓取的URL信息,Heritrix每次抓取時會訪問該文件,在該文件中的URL將放棄抓取,從而實現避免重復抓取。
2.將Heritrix的配置文件order.xml中的
但是,這些方法在爬取時都需要Heritrix重啟新的爬取任務,無法對指定URL記錄進行增量爬取。因此,我們將OutbackCDX引入Heritrix與UKWA-Heritrix結合實現增量信息采集。加入OutbackCDX后Heritrix的下載控制器形成結構如圖5所示。

圖5 基于OutbackCDX的增量信息抓取結構
圖5中OutbackCDX作為URL訪問存儲器,Frontier決定抓取策略。具體運行過程如下。
第一步:Frontier發(fā)出抓取指令;
第二步:對Frontier發(fā)出的某一URL進行采集;
第三步:對采集回來的網頁進行頁面內的URL鏈接提取;
第四步:提取出的URL存儲到OutbackCDX中;
第五步:Frontier從OutbackCDX中調取候選URL進行下一步的采集,往復進行。
由于OutbackCDX是可以直接單獨訪問的數據庫,因此可以直接操作OutbackCDX實現特定URL的增加、刪除、修改操作,實現網絡信息的增量采集,而不需要Heritrix每次重新啟動抓取程序。
爬取下來的文檔保存格式決定著磁盤空間、管理效率與數據交換標準。Web Archive 中的文件存檔格式有多種,如ARC(4)ARC[EB/OL].https://en.wikipedia.org/wiki/ARC_(file_format).、WARC[6]、CDX[7]等,IIPC 推薦使用WARC(Web ARChive)格式。WARC格式于2009年6月被正式批準成為ISO標準(ISO28500:2009)。
WARC(web archive)格式指定了一種將多個數字資源與相關信息組合成一個聚合存檔文件的方法。WARC格式是Internet存檔的ARC文件格式的一個修訂版,傳統(tǒng)上用于將web crawls存儲為從萬維網獲取的內容塊序列。WARC格式包含了舊格式,以更好地支持存檔組織的收集、訪問和交換需求。除了當前記錄的主要內容外,修訂版還包含相關的次要內容,例如分配的元數據、簡化的重復檢測事件和以后的日期轉換[8]。
WARC格式文件是一個或多個WARC記錄的串聯。一個WARC記錄由一個記錄頭、一個記錄內容塊和兩個新行組成;該頭具有記錄日期、類型和記錄長度的強制命名字段,并支持對每個收獲的資源(文件)的方便檢索[9]。有八種類型的WARC記錄:“warcinfo”“response”“resource”“request”“metadata”“review”“conversion”和“continue”。WARC文件中的內容塊可以包含任何格式的資源,例如,可以嵌入或鏈接到HTML頁面中的二進制圖像或視聽文件。
綜上所述,國內對網絡信息增量采集的研究較少,隨著網絡國家記憶的需求逐步增加,網頁信息增量采集將會在網絡信息存檔工作中扮演越來越重要的角色。目前國家檔案局等單位已經對此項工作高度重視起來,但我們的有關研究還比較薄弱,希望在此方案基礎上,有更多的研究機構對此進行更多的研究和實踐,提高網頁的爬取效率,在單位時間能獲得更多高質量的頁面,從而為我國的網絡信息增量采集工作提供一些參考和啟示。