ccrawl-recrawl-urls
收藏资源简介:
Common Crawl URL Recrawl 是一个实时重新抓取的数据集,它基于 Common Crawl 发布的 URL 索引,对每个页面重新发起 HTTP 请求,并将完整的响应、头部、时间信息及结果存储为 Parquet 格式的一行数据。同时,每个 HTML 页面在抓取时会被渲染为 Markdown 和纯文本,并附带语言检测和内容指纹。该数据集旨在解决原始 WARC 档案查询不便、数据陈旧的问题,使用户能够直接比较页面当前内容与历史存档的差异,而无需解析 HTML。数据集当前包含 777,573 行数据,压缩后约 22.4 GB,分布在 784 个分片中,由单台服务器从工作列表的一部分抓取完成。每一行代表一次抓取尝试,包括成功和失败的请求(如超时、DNS 解析失败等)。失败的请求会被保留,其中状态码为 0,错误原因分为六类(dns、timeout、refused、tls、skip、other)。数据字段丰富,包括:URL、主机名、HTTP 状态码、抓取时间戳、内容类型、正文长度、SHA-1 摘要、是否未修改(304)、ETag、Last-Modified、错误信息、元数据 JSON、Markdown 渲染结果、Markdown 长度、首字节时间、总抓取时间、最终 URL、IP 地址、响应头、请求头、原始正文、标题、纯文本、文本长度、词数、语言(ISO 639-3)、语言置信度、相似哈希(simhash)、提取器版本等。数据集仅包含一个训练分割,所有分片相互独立,任意子集均可作为有效样本。数据以 Open Data Commons Attribution License (ODC-By) v1.0 发布,与 Common Crawl 使用的许可证相同。适用场景包括:内容新鲜度比较、可用性测量、内容提取、基础设施研究、训练语料等。注意:每一行是一次抓取尝试而非成功的页面;状态码 200 且错误为空时才视为有效内容。304 响应无正文,需通过相同 URL 的先前抓取行获取正文。robots.txt 在该数据集中未被遵守。
Common Crawl URL Recrawl is a real-time recrawled dataset based on the URL index published by Common Crawl. It re-issues HTTP requests to each page, storing the complete response, headers, timing information, and results as a single row in Parquet format. Additionally, each HTML page is rendered into Markdown and plain text when crawled, with language detection and content fingerprinting. This dataset aims to address the inconvenience and staleness of the original WARC archives, allowing users to directly compare the current content of pages with historical snapshots without parsing HTML. The dataset currently contains 777,573 rows, approximately 22.4 GB compressed, distributed across 784 shards, crawled by a single server from a subset of the work list. Each row represents one crawl attempt, including both successful and failed requests (e.g., timeout, DNS resolution failure). Failed requests are retained with status code 0 and error reasons categorized into six types (dns, timeout, refused, tls, skip, other). The data fields are rich, including: URL, hostname, HTTP status code, crawl timestamp, content type, body length, SHA-1 digest, not modified (304), ETag, Last-Modified, error message, metadata JSON, Markdown rendering result, Markdown length, time to first byte, total crawl time, final URL, IP address, response headers, request headers, raw body, title, plain text, text length, word count, language (ISO 639-3), language confidence, simhash, extractor version, etc. The dataset contains only a training split, and all shards are independent; any subset can serve as a valid sample. The data is released under the Open Data Commons Attribution License (ODC-By) v1.0, the same license as Common Crawl. Use cases include: content freshness comparison, availability measurement, content extraction, infrastructure research, and training corpus. Note: Each row is a crawl attempt, not a successful page; a status code of 200 and no error indicate valid content. 304 responses have no body, and the body must be obtained from a previous crawl of the same URL. robots.txt is not respected in this dataset.
Common Crawl URL Recrawl 数据集概述
数据集简介
这是一个对 Common Crawl URL 索引中的网页进行实时重新抓取(recrawl)的数据集。数据集中包含每个页面的原始响应体(body)、响应头、抓取时间、结果状态,以及将页面渲染为 Markdown 和纯文本的版本,方便用户无需解析 HTML 即可直接阅读页面内容。
数据集目前包含 1,173,440 行,压缩后大小为 33.1 GB,分布在 1,180 个分片(shards) 中,由 1 台服务器完成抓取。数据仍在持续更新,新的分片会持续提交。
许可证
数据集采用 Open Data Commons Attribution License (ODC-By) v1.0 许可协议,与 Common Crawl 使用的工作列表许可证一致。
数据规模
| 机器 | 分片数 | 行数 | 大小 |
|---|---|---|---|
| server3 | 1,180 | 1,173,440 | 33.1 GB |
数据分为单个 train 分割,覆盖所有分片。分片之间相互独立,任何子集均可作为整体的有效样本。
数据字段说明
每一行代表一次抓取尝试。字段来源分为四类:served(网站自身的应答)、computed(本管线的计算结果)、measured(在本机时钟和网络上测量的数值)、asked(我们发送的请求内容)。
主要字段包括:
- url: 请求的 URL,直接来自工作列表
- host: 请求 URL 的主机名
- status: HTTP 状态码,0 表示从未收到响应
- fetched_at: 抓取时间(Unix 毫秒)
- body: 原始响应体(未解码)
- markdown: 页面渲染为 Markdown 的版本
- text: 去除样板内容后的纯文本版本
- title: 文档标题
- word_count: 提取文本中的单词数
- language: 检测出的语言(ISO 639-3)
- language_confidence: 语言检测置信度(0 到 1)
- simhash: 内容指纹,用于查找近似重复页面
- error: 抓取失败原因,取值包括:
dns、timeout、refused、tls、skip、other,成功时为空 - ttfb_ms: 首字节时间(毫秒)
- fetch_duration_ms: 总抓取时长(毫秒)
- final_url: 重定向后的最终 URL
- ip_address: 请求到达的 IP 地址
- resp_headers / req_headers: 响应/请求头(JSON 格式)
- etag / last_modified: 服务器返回的验证器
- unchanged: 服务器是否返回 304 Not Modified
- extractor: 渲染页面的引擎及版本
核心使用场景
- 新鲜度对比:比较页面当前内容与档案记录内容的差异
- 可用性分析:衡量索引中仍有响应的 URL 比例及响应类型
- 内容提取:原始响应体直接可用,无需访问 WARC 档案,且已提供渲染后的文本
- 基础设施研究:每次抓取的状态、耗时、请求头、IP 等信息
- 训练语料:许可证清晰、当前状态的真实网页快照
重要使用注意事项
- 一行是一次尝试而非一个页面:失败的尝试(超时、DNS 解析失败、连接拒绝等)也会保留为一行,
status为 0。统计页面数量时需要先过滤status = 200 AND error = - 抓取时间与爬取时间无关:
fetched_at是实际请求时间,与 Common Crawl 最初看到该页面的时间间隔数月,且间隔随运行持续增长 - 404 的含义有限:404 不区分页面被删除、被移动(无重定向)或服务器对陌生客户端返回的默认响应,403 和 429 同理
- 304 响应体为空:当服务器返回 304 Not Modified 时,body 字段为空,需要通过同一
url在早期批次中找到digest匹配的行来获取内容 - 未遵循 robots.txt:本数据集抓取时不检查 robots.txt,每个 URL 均为无条件 GET 请求,每主机每个礼貌间隔一次请求
- 内容为原始公开网页:可能包含作者放置的个人信息,数据集不对其进行过滤,仅抓取无需登录或付费墙的内容
如何使用
数据集为标准 Hugging Face Parquet 布局,可直接通过 DuckDB、datasets、pandas 和 huggingface_hub 读取,无需手动下载。可使用 load_dataset("open-index/ccrawl-recrawl-urls", split="train", streaming=True) 进行流式读取,或使用 snapshot_download 下载本地。如需加速下载,可安装 huggingface_hub[hf_transfer] 并设置 HF_HUB_ENABLE_HF_TRANSFER=1。
数据构建方式
构建流程使用单个 Go 二进制文件,每台机器运行两个进程:
- 从已发布的 Parquet 中流式读取工作列表,按注册域名拆分,使同一站点的所有页面由同一台机器抓取
- 依次抓取每个 URL,记录响应体、请求头、耗时和结果
- 在内存中将 HTML 页面渲染为 Markdown 和纯文本,并检测语言
- 按负载切分生成 Zstandard 压缩的 Parquet 分片
- 将每个关闭的分片连同更新的账本文件和数据集卡片提交到 Hub,然后删除本地文件
原始响应体按原样存储(未解码),渲染后的列仅是附加在原始内容旁边,不替代原始数据。失败抓取同样保留为一行,并记录错误类别和详细错误信息(存储于 meta_json 的 error_detail 字段)。
数据来源
数据来自 open-index/ccrawl-urls 工作列表(即单个月度 Common Crawl 的 URL 索引),数据集中的每一行都是对该列表中一个 URL 的重新抓取结果。





