You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter中从WARC文件提取URL遇未知归档格式错误,求解决方案

解决Common Crawl WARC文件URL提取的ArchiveLoadFailed错误

错误原因

你遇到的ArchiveLoadFailed错误,本质是打开的文件并非实际WARC数据文件,而是Common Crawl的分段索引文件——文件内仅存储WARC.gz文件的远程路径,没有可解析的WARC数据。

解决步骤

1. 获取真实WARC文件

根据错误提示里的路径(crawl-data/CC-MAIN-2023-14/segments/1679296943471.24/warc/CC-MAIN-20230320083513-20230320113513-00000.warc.gz),下载对应的WARC.gz文件(无需提前解压,warcio库支持直接读取压缩文件)。

2. 修正代码逻辑

原代码存在两处问题:

  • 错误尝试解析响应payload获取URL,实际WARC目标URI存储在记录头部
  • 未处理空URL的情况

修正后的代码如下:

import pandas as pd
from warcio.archiveiterator import ArchiveIterator

# 从WARC(.gz)文件提取URL
def extract_urls_from_warc(file_path):
    urls = []
    with open(file_path, 'rb') as file:
        for record in ArchiveIterator(file):
            if record.rec_type == 'response':
                # 直接从WARC记录头部读取目标URI
                url = record.rec_headers.get_header('WARC-Target-URI')
                if url:
                    urls.append(url)
    
    return pd.DataFrame(urls, columns=['URL'])

# 替换为你的WARC.gz文件路径
warc_file_path = r"./CC-MAIN-20230320083513-20230320113513-00000.warc.gz"

df = extract_urls_from_warc(warc_file_path)
print(df.head())

3. 依赖安装

确保已安装必要库:

pip install warcio pandas

额外提示

如果需要批量处理URL,建议使用Common Crawl的官方工具定位特定片段,避免下载完整的大体积WARC文件,提升效率。

内容的提问来源于stack exchange,提问作者Jawaher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 07:57:13