--- name: go-rod-master description: "Comprehensive guide for browser automation and web scraping with go-rod (Chrome DevTools Protocol) including stealth anti-bot-detection patterns." risk: safe source: "https://github.com/go-rod/rod" date_added: "2026-02-27" --- # Go-Rod Browser Automation Master ## Detailed Guide Read [the detailed guide](references/detailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely. ## When to Use This Skill - Use when the user asks to **scrape**, **automate**, or **test** a website using Go. - Use when the user needs a **headless browser** for dynamic/SPA content (React, Vue, Angular). - Use when the user mentions **stealth**, **anti-bot**, **avoiding detection**, **Cloudflare**, or **bot detection bypass**. - Use when the user wants to work with the **Chrome DevTools Protocol (CDP)** directly from Go. - Use when the user needs to **intercept** or **hijack** network requests in a browser context. - Use when the user asks about **concurrent browser scraping** or **page pooling** in Go. - Use when the user is migrating from **chromedp** or **Playwright Go** and wants a simpler API. ## Safety & Risk **Risk Level: 🔵 Safe** - **Read-Only by Default:** Default behavior is navigating and reading page content (scraping/testing). - **Isolated Contexts:** Browser contexts are sandboxed; cookies and storage do not persist unless explicitly saved. - **Resource Cleanup:** Designed around Go's `defer` pattern — browsers and pages close automatically. - **No External Mutations:** Does not modify external state unless the script explicitly submits forms or POSTs data. ## Examples See the `examples/` directory for complete, runnable Go files: - `examples/basic_scrape.go` — Minimal scraping example - `examples/stealth_page.go` — Anti-detection with go-rod/stealth - `examples/request_hijacking.go` — Intercepting and modifying network requests - `examples/concurrent_pages.go` — Page pool for concurrent scraping --- ## Limitations - **CAPTCHAs:** Rod does not include CAPTCHA solving. External services (2captcha, etc.) must be integrated separately. - **Extreme Anti-Bot:** While `go-rod/stealth` handles common detection (WebDriver, plugin fingerprints, WebGL), extremely strict systems (some Cloudflare configurations, Akamai Bot Manager) may still detect automation. Additional measures (residential proxies, human-like behavioral patterns) may be needed. - **DRM Content:** Cannot interact with DRM-protected media (e.g., Widevine). - **Resource Usage:** Each browser instance consumes significant RAM (~100-300MB+). Use `PagePool` and limit concurrency on memory-constrained systems. - **Extensions in Headless:** Chrome extensions do not work in headless mode. Use `Headless(false)` with XVFB for server environments. - **Platform:** Requires a Chromium-compatible browser. Does not support Firefox or Safari.