什么是公共爬虫?
无抓取通用抓取API检索当前公共网页,可以补充研究和数据管道中的归档网页数据集。
简而言之
- 公共爬虫是一个开放的网页爬虫数据存储库。 非营利组织公共爬虫基金会发布大型捕获,研究人员和开发人员可以在不构建网页规模爬虫的情况下访问。
- 语料库包含几种表示。 WARC保存原始爬虫记录,WAT包含派生的元数据,WET包含提取的纯文本。
- 索引应在大型下载之前出现。 CDXJ和列式URL索引帮助用户定位记录并在阅读归档文件之前估算范围。
- 爬虫是一个样本,而不是互联网的完整副本。 发现政策、机器人规则、爬取时间、失败、重复和语言识别影响显示的内容。
- 开放访问并不消除下游义务。 用户仍然需要评估隐私、版权、敏感内容和计划使用的适用性。
公共爬虫的定义
公共爬虫是一个非营利项目,抓取公共可达的网页,并发布生成的档案和派生数据集。 公共爬虫基金会概述 描述了该组织、其收集历史和提供的格式。该语料库用于网络研究、语言分析、搜索实验、档案研究和机器学习数据管道。
该项目减少了一个高昂的障碍:收集广泛的网络样本。用户可以查询索引,选择记录,并处理归档响应,而不必操作原始的爬虫队列。公共爬虫不会将这些记录转换为可用于任务的数据集。清理、去重、语言识别、质量过滤、安全审查和法律分析仍然是下游工作。
每个命名爬虫都是一个时间限定的捕捉,具有自己的覆盖范围。某个页面可能缺失,因为爬虫没有发现它、机器人规则阻止访问、主机不可用、请求失败、URL被降级,或内容在爬取后出现。存在性也有限:归档响应可能是重定向、错误页面、同意屏幕或部分渲染,而不是一个人所期待的内容。
因此,公共爬虫最好被理解为收集基础设施和历史语料库。它提供了原始和派生材料加上索引。它不认证准确性、代表性、权利或对特定模型或分析的适用性。这些问题属于选择和转化数据的用户。
公共爬虫数据是如何组织的
爬取过程发现URLs,获取响应,并将记录写入归档文件。公共爬虫将其爬虫标识为CCBot,并发布有关其行为的信息。网站可以通过robots.txt表达爬取规则,其标准语法由 机器人排除协议定义。规则影响爬虫访问;它不会使其余网络变得不可见或授予下游使用的许可。
WARC文件保存原始爬虫记录。它们可以包含HTTP请求、响应和爬虫元数据。此层是最接近爬虫接收到的内容,并在标题、状态、有效负载字节或内容类型重要时非常有用。文件被压缩和分区,因此在不缩小范围的情况下读取整个爬虫对于大多数项目来说是昂贵和不必要的。
WAT文件包含从原始记录派生的元数据,包括如标题和发现链接的信息。WET文件包含提取的纯文本,这对于语言和文本分析很方便,但省略了许多原始结构。 公共爬虫数据指南 解释了这些格式以及原始数据、元数据和提取文本之间的区别。
索引将URLs和爬虫记录映射到归档中的位置。一个有针对性的工作流程查询索引,接收诸如归档文件名、字节偏移量和记录长度等字段,然后请求所需的范围。这比下载每个WARC更快且更便宜。分析项目还可以使用列式URL索引进行跨域、状态代码、媒体类型或爬虫分区的大规模过滤。
WARC、WAT、WET和索引数据
选择保持所需证据的最轻表示,使得公共爬虫的工作易于理解和保持成本意识。
| 维度 | 主要含义 | 常见错误 |
|---|---|---|
| WARC | 原始请求、响应和爬虫记录。 | 在未首先缩小URLs的情况下,将其用于每个仅文本任务。 |
| WAT | 派生元数据,如标题和链接信息。 | 假设元数据包含完整的页面主体。 |
| WET | 用于文本处理的提取纯文本。 | 将提取的文本视为布局、表格或脚本的忠实副本。 |
| CDXJ索引 | 单个记录的URL查找和归档位置。 | 将索引命中与归档响应有用的证据混淆。 |
| 列式URL索引 | 批量分析过滤以列格式呈现。 | 扫描的问题要求的分区和列超出范围。 |
公共抓取的用途
该语料库支持那些受益于广泛网络覆盖的项目,只要取样和转换选择保持可见。
网络和语言研究
研究人员测量链接、域名、语言、模板和大样本中的内容变化。
搜索和信息检索
团队基于所选记录建立索引、排名实验、文档集合和检索基准。
机器学习语料库
过滤后的文本或多模态子集可以在权利、质量、安全和重复性审查后支持预训练和评估。
历史比较
连续的抓取可以展示一个域、主题或网络技术如何变化,尽管抓取范围必须受到控制。
一个实用的公共抓取工作流程
在选择抓取之前写下研究问题。当前语言的研究可能需要最新的可用分区。历史分析需要可比较的时间窗口。域审计可能只需要一小列表的URL前缀。问题决定了属于范围的抓取ID、索引、文件类型和字段。
查询索引并保存查询参数。记录抓取集合、URL模式、匹配模式、状态过滤器、媒体类型及对索引行应用的任何去重。启动批量任务之前先查看一部分命中样本。一个索引可以指向登录页面、重定向、错误响应或共享名称的不相关子域。
当原始证据重要时,请获取选定WARC记录的字节范围。在解析之前,验证WARC目标URI、响应状态、内容类型、捕获时间和有效载荷。对于仅文本分析,请将WET输出样本与相应的原始记录进行比较,以了解提取阶段删除或更改了什么。
创建派生数据集清单。列出输入抓取ID、代码版本、过滤器、黑名单、语言模型、质量阈值、去重方法和输出模式。当政策允许时,保留指向WARC位置的记录级指针。这样的传承让另一位审阅者能够重建一个文档为何进入或离开最终集。
覆盖率和数据质量限制
公共抓取无法捕捉整个网络。公共网站不断变化,URL发现不均匀,主机采用不同的访问政策。大型网站可以通过日历、参数、镜像或生成的页面主导样本。小型网站可能有很少的入站链接并获得较少的覆盖。页面计数并不直接转化为代表性内容。
呈现是另一个边界。抓取器的响应可能包含初始HTML,而不是浏览器在JavaScript运行后创建的最终页面。因此,WET提取对于客户呈现的接口可能是空的或不完整的。当前的浏览器或渲染服务可以提供比较,但新的捕获不应默默替换存档证据。
文本管道可能放大噪音。导航、cookie通知、抓取的副本、机器生成的页面、垃圾邮件和重复的模板可能会在提取中存活。语言标识符可能错误分类短或混合语言的记录。质量过滤器可以改善平均值,同时去除方言、代码切换或低资源语言。发布切片级统计及抽样示例。
开放可用性并不是一个普遍的许可声明。下游用户必须评估个人数据、受版权保护的作品、敏感内容、合同限制以及处理的目的。排除和删除请求也需要在任何派生数据集中有文档路径。公共抓取的收集政策不会取代用户自己的法律和伦理审查。
如何验证公共抓取数据集
按域、语言、时间、响应状态、媒体类型和源浓度报告覆盖率。包括索引查询和抓取标识符,以便可以重现样本。如果分析比较抓取,则在解释内容变化为网络本身的变化之前,需标准化发现和捕获量的变化。
在几个级别上测量重复:确切有效载荷、规范文本、模板和近重复文档。保持规则和阈值与结果一起。一个具有许多镜像URL的域可能会主导计数。与此同时,重复的法律文本或导航在段落级别移除可能比丢弃整个页面更好。
使用配对记录审核提取质量。将WET文本与选定的WARC有效载荷进行比较,检查标题、主要文本、表格、编码和模板。对于重JavaScript的页面,请记录归档仅包含获取的响应。不要用假设填充缺失的渲染文本。
通过每个转换跟踪来源。最终行应可追溯到抓取ID、WARC文件名、偏移量、目标URI、捕获时间和变换版本(如果可行)。当记录被移除时,记录规则和受影响的派生版本。这使得数据集可维护,而不是一次性导出。
结论
公共抓取是与存档网络数据合作的开放基础设施。它发布大型抓取集合、原始WARC记录、派生WAT和WET文件,以及使得目标访问成为可能的索引。该项目使用户免于操作网络规模的抓取器,但它并不提供完整的研究或训练数据集。
有用的工作始于一个狭窄的问题、一个索引查询和一个可重复的清单。覆盖、呈现、重复、权利和提取质量必须被衡量,而不是假设。当当前页面被添加以进行比较时,请将其获取方法和时间与档案分开。
准备好比较存档和当前的网络数据吗?
使用Scrapeless通用抓取API进行允许的当前页面获取,同时在同一证据模型中保留Common Crawl记录指针和时间戳。
今天注册并获得 5美元的免费信用 — 无需信用卡.
领取您的5美元信用→常见问题
Common Crawl是搜索引擎吗?
不是。Common Crawl发布网络爬虫档案和索引。用户从这些材料中构建自己的查询、分析、搜索索引或衍生数据集。
WARC和WET有什么区别?
WARC保留原始抓取记录和HTTP有效载荷。WET包含提取的纯文本,虽然更易于文本处理,但失去了页面结构和其他响应细节。
每个网站都包含在Common Crawl中吗?
不。每次抓取都是由发现、优先级、机器人规则、时间、主机可用性和请求结果塑造的样本。
Common Crawl数据可以用于AI培训吗?
它可以作为训练数据管道的输入,但用户仍然必须过滤质量和安全性,测量重复和覆盖,并评估权利、隐私和允许的使用。
为什么要先查询Common Crawl索引?
索引识别哪些记录匹配目标以及它们在档案文件中的位置,从而允许针对范围请求,而不是盲目下载大量集合。