urls
收藏资源简介:
该数据集包含 74,918,894,107 个去重且经过验证的 URL,以 Parquet 格式存储,仅包含一个 url 列(字符串类型)。URL 首先按 SURT 键(将主机名反转以便相同域名相邻)排序,再按 URL 字典序排序,并划分为 2048 个范围分片,使得同一主机下的 URL 集中在同一分片内,从而通过增量编码和 zstd 压缩实现高压缩率(原始文本约 5.8 TiB,压缩后约 665.6 GiB,平均每个 URL 仅 9.54 字节)。数据来源于 62 个公开 URL 数据集和 43 次 Common Crawl 爬取结果,经过全局去重、轻量级规范化(如修剪空白、解码 HTML 实体)和严格的 RFC 3986/1035 验证,仅移除了 0.00693% 的无效行,并记录了移除原因。数据集提供了丰富的统计文件(如主机、可注册域名、TLD、查询参数分布等)和分片元数据,便于高效查询和排名查找。该数据集适用于需要大规模 URL 集合的文本生成、文本检索、网络分析、压缩研究等任务,但只包含 URL 本身,不包含页面内容。使用时应遵守各原始数据源的许可证。
This dataset contains 74,918,894,107 deduplicated and validated URLs, stored in Parquet format with a single url column (string type). URLs are first sorted by SURT key (reversing hostnames to group same domains together), then lexicographically by URL, and partitioned into 2048 range shards, so that URLs under the same host are concentrated in the same shard, enabling high compression via delta encoding and zstd (raw text ~5.8 TiB, compressed ~665.6 GiB, average 9.54 bytes per URL). The data comes from 62 public URL datasets and 43 Common Crawl crawls, undergone global deduplication, lightweight normalization (e.g., trimming whitespace, decoding HTML entities), and strict RFC 3986/1035 validation, with only 0.00693% of invalid rows removed and reasons recorded. The dataset provides rich statistics files (e.g., host, registered domain, TLD, query parameter distributions) and shard metadata for efficient querying and rank lookups. It is suitable for tasks requiring large-scale URL collections such as text generation, text retrieval, web analysis, and compression research, but contains only URLs, not page content. Users should comply with the licenses of original data sources.
数据集概述
ks46/urls 是一个包含 74,918,894,107(约749亿)条去重且经过验证的URL 的数据集,按SURT键排序,并划分为2,048个范围分片。该数据集旨在提供全面覆盖和有序排列的URL语料库,而非规范的URL数据集。
核心特征
- 全局去重:每个URL仅出现一次,不区分来源。数据来自62个URL数据集和43次Common Crawl爬取。
- SURT排序:按
surt(url)(主机反转形式)及URL排序,使同一站点的URL相邻,从而实现高效压缩。 - 范围分区:按键范围(而非哈希)划分分片,一个主机通常位于单个分片中,便于基于范围的查询。
数据规模与统计
| 指标 | 数值 |
|---|---|
| URLs | 74,918,894,107 |
| 不同主机 | 490,966,709 |
| 不同TLD | 199,713 |
| 磁盘占用 | 665.6 GiB(714,742,514,253 字节) |
| URL文本总长度 | 5.8 TiB(6,328,442,428,750 字符) |
| 每URL字节数 | 9.54 |
| 平均URL长度 | 84.5 字符 |
| 最短/最长URL | 8 / 1,063,146 字符 |
| 分片数量 | 2,048 |
| 每分片行数 | 最少 5,596,916 · 中位数 32,976,802 · 最多 118,845,242 |
URL形态分布
- https://: 48,285,146,354 (64.4%)
- www. 前缀: 31,398,768,694 (41.9%)
- 含查询字符串: 17,695,620,127 (23.6%)
- 百分号编码: 6,790,808,061 (9.1%)
- Punycode主机: 155,795,800 (0.21%)
- 含片段: 129,228,698 (0.17%)
- 显式端口: 78,295,217 (0.10%)
- 非ASCII: 39,996,280 (0.05%)
- IP字面量主机: 6,992,145 (0.01%)
排序带来的压缩收益
- 与前一URL前16个字符相同的行占比:83.7%
- 前32个字符相同:71.0%
- 前64个字符相同:19.0%
这解释了为何84.5字符的URL平均仅压缩至9.54字节。
最大的可注册域名
| 域名 | URL数量 |
|---|---|
| reddit.com | 1,395,461,675 |
| redd.it | 798,711,317 |
| wordpress.com | 383,348,427 |
| imgur.com | 154,600,083 |
| google.com | 132,627,387 |
| wikipedia.org | 128,464,980 |
| fc2.com | 115,660,163 |
| archive.org | 96,740,069 |
最大的TLD
| TLD | URL数量 |
|---|---|
| com | 35,033,115,289 |
| org | 4,069,872,273 |
| ru | 3,157,550,535 |
| net | 2,659,582,082 |
| de | 2,397,599,121 |
| it | 1,801,668,446 |
| co.uk | 1,072,046,156 |
| fr | 1,062,381,327 |
数据格式与文件布局
data/part-00000.parquet … part-02047.parquet 单列:url (string) shards.json 每个分片的边界、行数、字节数、首行全局排名 stats/ 预计算的统计文件 audit.jsonl 每个分片的验证记录 removed.parquet 被清理删除的URL及原因
- Parquet V2格式,zstd压缩级别9,行组大小1,000,000行,采用
DELTA_LENGTH_BYTE_ARRAY编码。 shards.json包含每个分片的first_rank,用于全局行号计算。
预计算统计文件
提供多种统计文件,避免重复扫描665.7 GiB数据,包括:
corpus.json:全语料总量统计shard_stats.parquet:每分片的31列统计(行数、字节、长度百分位数、协议/查询/片段/端口计数等)hosts.parquet:全部4.9亿主机及其URL计数、长度统计registrable_domains.parquet:基于Public Suffix List的eTLD+1统计public_suffixes.parquet、tld.parquet:后缀及TLD统计length_hist.parquet、path_depth.parquet、extensions.parquet:长度、路径深度、扩展名分布query_param_count.parquet、query_keys.parquet、query_values.parquet、query_value_len.parquet:查询字符串统计fragments.parquet:片段值统计rank_index.parquet:每10,000个URL的全局排名索引,便于二分查找
数据构建过程
- 数据源:62个公开URL数据集及43次Common Crawl爬取,包括C4、Dolma、FineWeb、RedPajama、OSCAR、RefinedWeb等。
- 规范化:仅做轻量处理——修剪空白和控制字符、解码HTML实体、补充缺失的协议,不追求规范URL。
- 验证:使用
url_valid()(基于RFC 3986和RFC 1035)验证所有URL,移除5,188,960行(0.00693%),详细原因记录在removed.parquet中。
主要删除原因
| 原因 | 行数 | 说明 |
|---|---|---|
| bad_tail_char | 3,168,516 | 尾部标记,如</url> |
| unknown_tld | 867,294 | 无效TLD,如.adac |
| bad_tld | 425,339 | TLD含数字,如t.0000me |
| single_label | 252,843 | 无点号的主机 |
| bad_host_char | 140,961 | 表情符号等非法主机字符 |
| label_hyphen | 88,200 | 模板内容 |
| bad_ipv6 | 86,683 | Markdown误用 |
| too_long | 36,292 | 超长 |
| empty_label | 25,440 | 截断导致空标签 |
| label_too_long | 24,270 | 主机名超长 |
| bad_ipv4 | 15,351 | 非法IPv4 |
| ipv4_leading_zero | 3,202 | 前导零(八进制歧义) |
| 其他 | 385 | 包括bad_userinfo、host_too_long等 |
| legacy_clean | 54,184 | 早期清理(空白、控制字符) |
数据使用示例
python from datasets import load_dataset
流式加载——整个语料库为665.7 GiB
ds = load_dataset("ks46/urls", split="train", streaming=True) print(next(iter(ds)))
python import pandas as pd
加载单个分片
df = pd.read_parquet("hf://datasets/ks46/urls/data/part-00000.parquet")
sql -- 使用统计文件,无需访问全量数据 SELECT domain, urls FROM hf://datasets/ks46/urls/stats/registrable_domains.parquet ORDER BY urls DESC LIMIT 20;
许可与归属
数据收集自上述列出的公开数据集(各自有其许可)以及Common Crawl。该数据集仅包含URL(对公共资源的引用),不包含网页内容。重新分发不改变任何来源的许可条款。Common Crawl数据遵循其使用条款。




