nodriver

Solid

Write Python browser automation scripts using nodriver (undetected Chrome DevTools Protocol). Use when: writing web scrapers, automating logins, filling forms, bypassing anti-bot systems (Cloudflare, Captcha), taking screenshots, managing cookies, or any browser automation that needs to avoid detection. Triggers on: nodriver, undetected browser, web scraping, browser automation, bypass captcha, bypass cloudflare, headless chrome, CDP automation.

AI & Automation 37 stars 24 forks Updated today MIT

Install

View on GitHub

Quality Score: 83/100

Stars 20%
53
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# nodriver Async Python library for undetected browser automation via CDP. Successor to `undetected-chromedriver`. No Selenium, no chromedriver binary. Docs: https://ultrafunkamsterdam.github.io/nodriver ## Prerequisites - Chrome/Chromium/Edge/Brave installed (default location) - Headless environments: use Xvfb or `headless=True` ## Quick start ```python import nodriver as uc async def main(): browser = await uc.start() tab = await browser.get('https://example.com') if __name__ == '__main__': uc.loop().run_until_complete(main()) ``` ## Critical quirks (non-obvious) - **Never use `asyncio.run()`** — use `uc.loop().run_until_complete(main())`. - **`await tab` between rapid interactions** — syncs DOM state, prevents stale refs. Insert whenever elements aren't found or interactions fail. - **Fresh profile each run by default** — set `user_data_dir="/path"` to persist. - **`find(text, best_match=True)`** is expensive but accurate (matches by text length). Use `select(css)` when selector is known. - **All lookup methods retry until `timeout`** (default 10s) — double as wait conditions. `await tab.select('body')` = wait for page load. - **`expert=True` increases detectability** — opens shadow roots and disables web security, but WAFs detect it more easily. - **`verify_cf()` requires `opencv-python`** — English only, doesn't work in expert mode. ## Start options ```python browser = await uc.start( headless=False, user_data_dir="/path/to/profile", b...

Details

Author
OpenCoven
Repository
OpenCoven/coven
Created
3 months ago
Last Updated
today
Language
Rust
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category