基于浏览器的高保真网页爬取工具 Browsertrix Crawler
webrecorder 团队开源的 Browsertrix Crawler,目前在 GitHub 上获得 1,033 个 Star:
Browsertrix Crawler 是独立的基于浏览器的高保真爬取系统,设计为在单个 Docker 容器中运行复杂的可自定义的基于浏览器的爬取任务。和传统的基于HTTP请求的爬取工具不同,它直接通过浏览器加载页面,能够完整捕获动态渲染的内容、交互元素和页面资源,还原页面的真实呈现效果。 Browsertrix Crawler 使用 Puppeteer 并行控制一个或多个 Brave Browser 窗口。数据通过浏览器中的 Chrome Devtools Protocol 捕获,包括页面的HTML、CSS、JavaScript执行结果、媒体资源等所有内容,确保爬取结果的高保真度。 用户可以访问 Browsertrix Crawler 官方文档站点 crawler.docs.browsertrix.com 查看完整的使用和开发相关说明。文档中包含安装部署、配置参数、使用示例、常见问题等内容,覆盖从入门到高级使用的全场景需求。需要在本地构建文档的用户,可以查看代码库中的 docs/docs/develop/docs.md 页面获取具体的操作指引。
Browsertrix Crawler 0.x 版本的初始支持由 Kiwix 提供。其初始功能为支持 zimit 项目开发,由 Webrecorder 与 Kiwix 合作完成,之后该项目从 Zimit 中拆分出来,成为 Webrecorder 的核心组件。zimit 项目主要用于将网页内容转换为 ZIM 格式,方便离线存储和分发,Browsertrix Crawler 作为其核心爬取模块,保障了内容捕获的完整性和准确性。 Portico 为 Browsertrix Crawler 提供了额外支持,包括 0.4.x 版本的开发工作。Portico 是一个数字保存服务机构,专注于长期保存学术期刊、电子书等数字内容,其支持推动了 Browsertrix Crawler 在数字保存领域的功能优化和稳定性提升。
Browsertrix Crawler 适用于多种爬取场景。对于需要保存网页完整呈现效果的数字存档场景,它可以捕获动态页面的所有交互和视觉元素,避免传统爬取工具只能获取静态HTML的不足。对于需要批量爬取大量动态网站的场景,它支持并行运行多个浏览器窗口,提升爬取效率。对于需要自定义爬取逻辑的场景,用户可以通过配置参数控制爬取深度、页面停留时间、交互操作等,满足不同的爬取需求。
Browsertrix Crawler 采用 AGPLv3 或更高版本许可协议,用户可以自由使用、修改和分发该软件,修改后的版本如果对外提供服务,需要以相同许可协议公开源代码。用户可以查看代码库中的 LICENSE 文件了解完整的许可条款。