WARC Format (Web Archive)
Description
WARC (Web ARChive) is a format for storing web archive data. It's an ISO standard format used by web archiving tools to store HTTP requests, responses, metadata, and resource records. WARC files are used by the Internet Archive and other web archiving organizations.
File Extensions
.warc- WARC archive files.arc- Legacy ARC format files (alias, handled as WARC)
Implementation Details
Reading
The WARC implementation:
- Uses
warciolibrary for reading - Parses WARC records (request, response, metadata, etc.)
- Extracts WARC headers and content
- Converts each WARC record to a dictionary
- Supports compressed WARC files
Writing
Writing support:
- Creates WARC files
- Writes WARC records with proper headers
- Supports different WARC record types
Key Features
- Web archive format: Designed for web archiving
- Multiple record types: Supports request, response, metadata, resource records
- Nested data: Can contain complex web content
- Compression support: Can work with compressed WARC files
- Standard format: ISO standard format
Usage
from iterable import open_iterable
# Basic reading
source = open_iterable('archive.warc')
for record in source:
print(record) # Contains WARC record data
source.close()
# Writing
dest = open_iterable('output.warc', mode='w')
dest.write({
'record_type': 'response',
'target_uri': 'http://example.com',
'content': b'...' # Binary content
})
dest.close()
Parameters
No specific parameters required.
Limitations
- warcio dependency: Requires
warciopackage - Binary format: Contains binary content
- Complex structure: WARC records can be complex
- No totals: Totals counting not supported (requires full iteration)
- Memory usage: Large WARC files may use significant memory
Compression Support
WARC files can be compressed with all supported codecs:
- GZip (
.warc.gz) - BZip2 (
.warc.bz2) - LZMA (
.warc.xz) - LZ4 (
.warc.lz4) - ZIP (
.warc.zip) - Brotli (
.warc.br) - ZStandard (
.warc.zst)
Note: WARC files often use internal compression as well.
Use Cases
- Web archiving: Archiving web content
- Historical preservation: Preserving web history
- Research: Web research and analysis
- Compliance: Meeting web archiving requirements