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 StartedRust099- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00