Repolode
go-rod

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 数据每日更新。

相关项目