ISO 28500:2017 – 信息和文档 – WARC文件格式

网络存档存储标准:深入了解WARC(Web ARChive)文件格式规范

1. ISO 28500与WARC文件格式概述

ISO 28500:2017规定了WARC(Web ARChive)文件格式,这是存储网络存档内容的国际标准。WARC作为ARC格式(互联网档案馆自1996年使用)的后继者,满足了对于能够捕获现代网络资源复杂结构的标准化、可扩展格式的日益增长的需求。该格式支持在单个存档文件中存储多种数字资源——包括HTTP响应、DNS记录和元数据——同时保持资源之间及其与上下文元数据的关系。

WARC文件是全球主要网络存档项目的支柱,包括互联网档案馆的Wayback Machine、国家图书馆网络馆藏和企业记录保存系统。理解WARC格式对于从事数字保存、网络爬取或存档数据管理的任何人来说都是必不可少的。

2. WARC文件与记录模型

WARC文件是一个连接的记录序列,每个记录由一个头部分和一个可选的内容块组成。该标准定义了每个记录头部中的多个强制和可选命名字段:

字段名称 是否必需 描述
WARC-Record-ID 记录的全局唯一标识符(URI格式)
Content-Length 内容块的字节长度
WARC-Date 资源捕获的日期/时间(ISO 8601格式,精确到秒)
WARC-Type 记录类型:response, request, resource, metadata, conversion, revisit, warcinfo, continuation
Content-Type 内容块的MIME类型
WARC-Block-Digest 内容块的哈希摘要
WARC-Payload-Digest 内容块内有效负载的哈希摘要
WARC-IP-Address 提供资源的服务器的IP地址
WARC-Refers-To 对相关记录的引用
WARC格式使用强制记录标识符和摘要确保数据完整性和可追溯性。每条记录都有全局唯一ID,使得可以在不同存档文件和集合之间引用特定捕获。块摘要和负载摘要的组合允许验证存储内容和提取的有效负载。

3. 记录类型及其应用

WARC定义了八种记录类型,每种在网络存档工作流中服务特定功能:

3.1 核心记录类型

warcinfo描述存档文件本身(爬虫软件、操作员、参数)。response存储完整的HTTP响应,包括头部和正文。request捕获生成响应的HTTP请求,使得能够重建完整的客户端-服务器交互。resource存储未封装在HTTP信封中的任何数字资源,如FTP下载或DNS记录。

3.2 元数据和派生记录

metadata存储关于另一记录的补充信息(如爬取日志条目、提取的文本)。conversion记录表示原始资源的转换版本,如OCR输出或格式迁移。revisit记录指示资源内容与之前捕获的版本相同,使用WARC-Refers-To字段建立关系——这对于重复爬取的高效存储至关重要。

WARC格式严格要求同一WARC文件中的所有记录共享相同的WARC-Date字段值,但warcinfo和continuation记录除外。这一要求确保存档文件内的时间顺序,并简化回放期间的时间导航。

4. WARC实施的工程设计见解

实施基于WARC的系统需要仔细考虑几个工程方面:

压缩策略:WARC文件使用gzip压缩效果极佳(HTML内容典型压缩比5:1至10:1)。然而,对于随机访问,单条记录压缩(每条记录gzip)优于文件级压缩。标准建议在记录级别使用Content-Encoding: gzip。

文件大小管理:常见做法将单个WARC文件限制在1 GB未压缩或约100 MB压缩。这平衡了存储效率与实际处理需求。标准允许任何文件大小,但建议实现者至少支持4 GB文件。

去重策略:Revisit记录与负载摘要相结合,可在重复爬取期间实现显著的存储节省。对1000万页网站的典型每周爬取可能只存储10-20%的新内容,其余存储为引用原始捕获的revisit记录。

创建后不得修改WARC文件。该格式被设计为一次写入的存档格式。任何修改都会使内容摘要失效并危及数据完整性。对于更正或注释,应使用元数据或转换记录,而不是修改现有记录。

5. 常见问题解答

问1:WARC与旧版ARC格式的关系是什么?
答:WARC是ARC格式的后继者。主要改进包括增加了命名字段(而非位置字段)、支持多种记录类型、用于完整性检查的内嵌摘要以及适用于大资源的延续机制。
问2:WARC如何处理JavaScript渲染的内容?
答:WARC存储服务器提供的HTTP响应,通常包含JavaScript源代码而非渲染输出。要存档渲染后的内容,爬虫可使用无头浏览器并通过资源或转换记录存储渲染后的DOM。
问3:没有专业软件能否读取WARC文件?
答:可以。WARC文件使用纯文本头部,人类可用标准工具阅读。多个开源库(warcit、JWAT、warcio)提供编程访问。
问4:推荐的WARC文件最大大小是多少?
答:虽然格式本身没有最大大小限制,实际实现通常将文件限制在1 GB未压缩以便管理。超过4 GB的文件可能导致某些文件系统和工具的兼容性问题。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注