本作品是一个面向大规模网页元数据提取的生产级命令行工具,完全使用 C++17 标准开发,并依托 libcurl 的成熟网络库实现高鲁棒性处理。该项目专为处理千万级URL列表而生,致力于在海量任务中实现高效、稳定的网页标题(Title)、描述(Description)、规范链接(Canonical URL)及搜索引擎抓取指令(Robots)的自动化提取。
核心功能与技术亮点:
1. 高性能并发架构:实现了固定大小的 Worker 线程池模型,配合基于令牌桶思想的自定义主机并发限流器,能在确保高吞吐的同时,严格遵守对单域名的并发限制,避免触发反爬策略。
2. 断点续传与数据完整性:独创了“行级事务”的检查点机制。通过内建的轻量级 SHA-256 校验及原子化写入策略,即使在手机、服务器突然断电或程序崩溃的极端情况下,也能保证 TSV 输出文件不脏写、不重复,支持随时安全地从中断处续爬。
3. 多源元数据智能提取:不依赖重量级的外部 HTML 解析库,自研轻量级标签扫描器与最小化 JSON 解析树,支持从标准 Meta 标签、Twitter Card、Open Graph 协议、JSON-LD 以及嵌入式 JSON 脚本中智能读取数据。特别加入了 Anti-bot 页面特征识别、通用无意义标题过滤以及首段可见文本兜底描述生成算法。
4. 健壮的容错与解码能力:针对国际互联网复杂的编码情况,内置了 Win-1252/ISO-8859-1 到 UTF-8 的自动转码、自动 URL 规范化、追踪参数去除以及严谨的 HTML 实体反转义处理。
5. 跨平台便携性:完美兼容 Linux 服务器及 Android/Termux 移动端环境,无需大型第三方库依赖。
我的角色: 在本作品中我独立负责了全栈架构设计、核心爬虫调度器(生产者-消费者模型)编写、轻量级 HTML/JSON 元数据解析引擎的开发,以及防止爬虫“脏写”的高可靠检查点系统的数学逻辑设计与实现