用高级 API 控制 Chrome 或 Firefox 的 JavaScript 库,默认无界面运行。
go-rod/rod
基于 Chrome DevTools Protocol 的 Go 浏览器自动化与爬虫库,支持自动等待元素。
- Star
- 7,136
- Fork
- 489
- 未关闭 Issue
- 216
- 最近提交
- 3个月前
这是什么?
Rod 是一个直接基于 Chrome DevTools Protocol 构建的高层驱动库,用于 Go 语言下的网页自动化和数据抓取。它采用链式、基于 context 的 API,便于为长时间运行的任务设置超时或取消,并在执行操作前自动等待元素就绪。
除基础控制外,Rod 还提供 WaitStable、WaitRequestIdle、HijackRequests、WaitDownload 等高级辅助方法,能够正确处理嵌套 iframe 与 shadow DOM。其 launcher 包可自动查找或下载浏览器。库本身保证线程安全,底层包也可用于定制自己的工具。
项目在 CI 中强制 100% 测试覆盖率,并通过 leakless 机制确保浏览器崩溃后不会残留僵尸进程。提供官方文档、API 参考以及中文 API 文档。
核心功能
- 01链式 context API,方便设置超时和取消长时间任务。
- 02操作元素前自动等待其就绪。
- 03通过 launcher 包自动查找或下载浏览器。
- 04提供请求拦截、下载等待、页面稳定检测等辅助方法。
- 05支持嵌套 iframe 与 shadow DOM。
- 06浏览器崩溃后不留下残留进程。
适用场景
- 在 Go 服务中抓取依赖 JavaScript 渲染的网站数据。
- 用 Go 编写端到端浏览器测试。
- 自动化表单填写、文件下载等重复性网页操作。
- 基于底层 CDP 包构建定制化的浏览器自动化工具。
收录于专题
标签
常见问题
- rod 是什么?
- 基于 Chrome DevTools Protocol 的 Go 浏览器自动化与爬虫库,支持自动等待元素。 Rod 是一个直接基于 Chrome DevTools Protocol 构建的高层驱动库,用于 Go 语言下的网页自动化和数据抓取。它采用链式、基于 context 的 API,便于为长时间运行的任务设置超时或取消,并在执行操作前自动等待元素就绪。
- rod 可以免费使用吗?用的什么许可证?
- rod 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- rod 还在维护吗?
- 半年内有更新。rod 最近一次提交是在 2026年8月11日。
- rod 适合用来做什么?
- 在 Go 服务中抓取依赖 JavaScript 渲染的网站数据。 用 Go 编写端到端浏览器测试。 自动化表单填写、文件下载等重复性网页操作。 基于底层 CDP 包构建定制化的浏览器自动化工具。
- 在哪里获取 rod?
- 源代码和安装说明在 GitHub 上:https://github.com/go-rod/rod
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
9.6万+5 本周9570TypeScriptApache-2.0更新于 前天
一个用 Go 编写的 HTTP 服务,让 AI 智能体以低 token 消耗控制 Chrome,并支持多实例编排与实时面板。
1万+15 本周782GoMIT更新于 9天前
一个基于 Chrome DevTools Protocol 驱动真实浏览器的小型 Rust 命令行工具,专为编码智能体设计。
3152210RustMIT更新于 2个月前
用 Zig 从零编写的无头浏览器,面向 AI 智能体与自动化,支持 CDP 和 WebDriver BiDi。
3.7万+76 本周1786ZigAGPL-3.0更新于 21小时前
一个 Agent Skill,为 Claude Code 等本地 AI Agent 提供联网策略、CDP 浏览器操作和站点经验积累。
9249+10 本周659JavaScript无许可证更新于 11天前
面向自主智能体、智能数据抽取和大规模网页自动化的 AI 原生浏览器引擎,附带命令行工具与 MCP 支持。
1168+3 本周153KotlinApache-2.0更新于 15小时前