CommonCrawl.Net 是一个全面的 .NET 解决方案,用于与 Common Crawl 数据集进行交互。它提供了导航数据集索引、支持断点续传的文件下载以及高效解析 WARC(Web ARChive)文件的工具。
本仓库包含以下组件:
- CommonCrawl: 核心库,处理数据集元数据、下载管理和 WARC 文件解析。
- CommonCrawl.Parquet: 一个专门用于读取 Common Crawl Parquet 索引文件的库。
- CommonCraw.ConsoleApp: 一个演示库用法的控制台应用程序。
- 数据集发现: 轻松获取最新的爬取版本。
- 弹性下载: 内置支持 HTTP Range 请求,可恢复中断的下载。
- WARC 解析: 高性能的流式 GZIP 解压和 WARC 记录解析。
- Parquet 支持: 用于读取和处理存储为 Parquet 格式的 Common Crawl 索引文件的工具。
- .NET 10.0 SDK 或更高版本。
您可以通过 NuGet 安装这些包:
dotnet add package CommonCrawl.Net
dotnet add package CommonCrawl.Parquet或者,您可以从源代码构建项目:
git clone https://github.com/m67186636/CommonCrawl.Net.git
cd CommonCrawl.Net
dotnet build详细文档请参考 核心库 README。
using CommonCrawl.Handlers;
using CommonCrawl.Readers;
// 获取最新的爬取信息
var latestInfo = await DataSetHandler.Instance.GetLatestAsync();
// 读取 WARC 文件流
await foreach (var record in GzWarcReader.Instance.ReadAsAsyncEnumerable("https://example.com/sample.warc.gz"))
{
Console.WriteLine($"Record: {record.Type}");
}using CommonCrawl.Readers;
// 从本地 Parquet 文件读取记录
await foreach (var record in ParquetReader.Instance.ReadAsAsyncEnumerable<IndexTableRecord>("cc-index.parquet"))
{
Console.WriteLine($"URL: {record.Url}");
}本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。