go-rod/rod

GitHub: go-rod/rod

Rod 是一个基于 Chrome DevTools Protocol 的 Go 语言高级浏览器驱动,用于 Web 自动化和网页抓取。

Stars: 7030 | Forks: 476

# 概述 [![Go Reference](https://pkg.go.dev/badge/github.com/go-rod/rod.svg)](https://pkg.go.dev/github.com/go-rod/rod) [![Discord Chat](https://img.shields.io/discord/719933559456006165.svg)][discord room] ## [文档](https://go-rod.github.io/) | [API 参考](https://pkg.go.dev/github.com/go-rod/rod?tab=doc) | [常见问题](https://go-rod.github.io/#/faq/README) Rod 是一个直接基于 [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol) 的高级驱动。 它专为高级和低级用途的 Web 自动化和抓取而设计,资深开发者可以使用低级包和函数轻松 自定义或构建他们自己的 Rod 版本,高级函数只是构建默认版 Rod 的一些示例。 [中文 API 文档](https://pkg.go.dev/github.com/go-rod/go-rod-chinese) ## 特性 - 链式 context 设计,直观地对长时间运行的任务进行超时处理或取消 - 自动等待元素就绪 - 调试友好,自动输入追踪,远程监控无头浏览器 - 所有操作均线程安全 - 自动查找或下载[浏览器](lib/launcher) - 诸如 WaitStable、WaitRequestIdle、HijackRequests、WaitDownload 等高级辅助功能 - 两步式 WaitEvent 设计,绝不漏掉任何事件([工作原理](https://github.com/ysmood/goob)) - 正确处理嵌套的 iframe 或 shadow DOM - 崩溃后不会产生僵尸浏览器进程([工作原理](https://github.com/ysmood/leakless)) - [CI](https://github.com/go-rod/rod/actions) 强制实现 100% 测试覆盖率 ## 示例 请先查看 [examples_test.go](examples_test.go) 文件,然后查看 [examples](lib/examples) 文件夹。 如需更详细的示例,请搜索单元测试。 例如,关于 `HandleAuth` 方法的使用,您可以搜索所有包含 `HandleAuth` 的 `*_test.go` 文件, 例如,使用 GitHub 在线[在仓库中搜索](https://github.com/go-rod/rod/search?q=HandleAuth&unscoped_q=HandleAuth)。 您也可以搜索 GitHub 的 [issues](https://github.com/go-rod/rod/issues) 或 [discussions](https://github.com/go-rod/rod/discussions), 那里记录了大量的使用示例。 [这里有一份](lib/examples/compare-chromedp) rod 与 Chromedp 的示例对比。 如果您有疑问,请发起 [issues](https://github.com/go-rod/rod/issues)/[discussions](https://github.com/go-rod/rod/discussions) 或加入[聊天室][discord room]。 ## 加入我们 竭诚欢迎您的帮助!哪怕仅仅是提一个 issue 来问一个问题,也可能会极大地帮助到其他人。 在提问之前,请阅读[提问的智慧](http://www.catb.org/~esr/faqs/smart-questions.html)。
标签:ChromeDevTools, EVTX分析, Go, Ruby工具, Web自动化, 无头浏览器, 日志审计