Skip to main content
Zendriver Hero Light

What is Zendriver?

Zendriver is a blazing fast, async-first, undetectable web scraping and automation framework for Python. Built on the Chrome DevTools Protocol (CDP), it lets you visit websites, scrape content, and run JavaScript using a real browser—without Selenium or WebDriver.

Undetectable

Uses Chrome DevTools Protocol instead of Selenium/WebDriver, making it nearly impossible to detect

Blazing fast

CDP combined with async Python makes Zendriver highly performant compared to traditional solutions

Easy to use

Get up and running with just a few lines of code—no complex configuration required

Docker ready

First-class Docker support with GPU-accelerated Chrome (not headless) via zendriver-docker

Why choose Zendriver?

Traditional tools like Selenium are easily detected by modern anti-bot solutions. Zendriver uses CDP to control Chrome directly, making your automation invisible to detection systems.
Chrome DevTools Protocol is significantly faster than Selenium/WebDriver. Combined with Python’s async/await syntax, you can run multiple browser operations concurrently with ease.
Zendriver includes automatic cookie management, smart element lookup with retries, and comprehensive Docker support for easy deployment.
Zendriver is a community-driven fork of nodriver, created to include bug fixes, add new features, and enable open collaboration through GitHub issues and pull requests.

Quick example

Here’s how simple it is to visit a website and take a screenshot:
import asyncio
import zendriver as zd

async def main():
    browser = await zd.start()
    page = await browser.get("https://www.browserscan.net/bot-detection")
    await page.save_screenshot("browserscan.png")
    await browser.stop()

if __name__ == "__main__":
    asyncio.run(main())
Ready to get started? Follow our quickstart guide to create your first Zendriver script.

Key features

Smart element lookup

Find elements by selector or text, including iframe content. Automatically retries until found or timeout

Cookie management

Save and load cookies to avoid repeating login steps. Fresh profile by default, cleaning up on exit

Easy debugging

Descriptive element representations that show HTML structure, making debugging straightforward

Best match search

Find elements by text with intelligent matching that selects the closest match by text length

Get started

Installation

Install Zendriver using pip or your favorite package manager

Quickstart

Build your first web scraping script in minutes

API reference

Explore the complete API documentation

Community and support

Zendriver is open source and welcomes contributions from the community.

GitHub repository

Star the project, report issues, or submit pull requests

Contributing

Learn how to contribute to Zendriver development

Build docs developers (and LLMs) love