Heritrix3 3.7.0版本发布:网络爬虫工具的重大更新
项目简介
Heritrix3是一个开源的、可扩展的网络爬虫框架,由Internet Archive主导开发。作为专业级的网络爬取工具,它被广泛应用于互联网存档、数据采集和数字保存等领域。Heritrix3以其高度可配置性、稳定性和对大规模爬取任务的支持而闻名,是许多机构进行网络存档工作的首选工具。
3.7.0版本核心更新
1. Groovy爬取配置支持(实验性功能)
本次更新引入了Groovy Bean Definition DSL作为Spring XML配置的替代方案,这是一个重要的技术演进。这项实验性功能允许开发者使用Groovy语言来编写更简洁、更易读的爬取任务配置,并支持内联脚本功能。
技术意义:
- 配置更加简洁:相比传统的XML配置,Groovy DSL可以显著减少配置文件的体积
- 增强灵活性:支持内联脚本意味着可以在配置中直接实现简单的逻辑处理
- 提升可读性:Groovy语法更接近自然语言,便于维护和理解
目前这一功能尚未集成到用户界面中,需要手动在作业目录中创建crawler-beans.groovy文件来使用。
2. HTML提取器新增obeyRelNofollow选项
这个新增加的选项允许爬虫跳过标记有rel=nofollow的链接,这是一个实用的反爬虫陷阱功能。
技术背景:
- rel=nofollow是HTML中的一种属性,通常用于告诉搜索引擎不要追踪特定链接
- 某些网站会滥用这一机制设置爬虫陷阱
- 启用此选项后,爬虫将自动忽略这些链接,提高爬取效率
3. 修复Cookie拒绝警告问题
在3.6.0版本中,由于slf4j的变更,导致当服务器发送带有不允许域值的Set-Cookie头时,会向job.log记录不必要的警告信息。这个版本修复了这一问题,避免了日志污染。
技术影响:
- 减少日志噪音,提高日志可读性
- 避免管理员被大量无害警告干扰
- 保持系统监控的准确性
技术优化
1. 移除fastutil依赖
本次更新移除了对fastutil库的少量使用,改用标准库实现,这一变化带来了显著的效果:
- 发行包大小从51MB减少到34MB,减少了约33%
- 降低依赖复杂度
- 提高系统稳定性
2. 依赖项升级
3.7.0版本对多个关键依赖进行了升级,包括:
- Jetty升级到9.4.57.v20241219
- Spring框架升级到6.1.16
- webarchive-commons升级到1.3.0
- 其他多项安全性和性能更新
这些升级带来了更好的性能、安全性和兼容性。
技术价值分析
Heritrix3 3.7.0版本的发布体现了项目团队对以下几个技术方向的关注:
-
配置简化:通过引入Groovy DSL,降低了配置复杂度,这是对开发者体验的重要改进。
-
爬取效率:obeyRelNofollow选项的加入直接针对实际爬取过程中的痛点,提高了爬虫的工作效率。
-
系统优化:通过依赖精简和升级,使系统更加轻量化和现代化。
-
稳定性提升:修复日志警告等问题,提高了系统的运行稳定性。
对于需要进行大规模网络爬取的专业用户来说,3.7.0版本提供了更强大、更灵活的工具集,特别是在处理复杂网站结构和避免爬虫陷阱方面有了明显改进。Groovy配置的支持也为高级用户提供了更大的灵活性和控制力。
总结
Heritrix3 3.7.0版本是一次重要的迭代更新,在保持系统稳定性的同时,引入了多项实用新功能和优化。特别是Groovy配置支持和nofollow处理能力的增强,使得这个专业的网络爬虫工具更加易用和强大。对于依赖Heritrix3进行网络存档和数据采集的机构和个人来说,升级到这个版本将获得更好的使用体验和工作效率。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0214
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03