pydoll
Pydoll is a Python library for automating Chromium browsers via the Chrome DevTools Protocol without requiring WebDriver binaries. It provides both high-level human-like interaction APIs and low-level network/fingerprint control, plus Pydantic-based structured data extraction.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | autoscrape-labs/pydoll |
| Owner | autoscrape-labs |
| Primary language | Python |
| License | MIT — OSI-approved |
| Stars | 6.9k |
| Forks | 386 |
| Open issues | 30 |
| Latest release | 2.23.0 (2026-05-22) |
| Last updated | 2026-05-24 |
| Source | https://github.com/autoscrape-labs/pydoll |
What pydoll is
Async-native, fully typed Python library connecting directly to CDP over WebSocket for browser automation. Features humanized mouse/keyboard input (Bezier curves, Fitts's Law timing), network interception, shadow DOM and iframe traversal, and declarative extraction via Pydantic models with CSS/XPath selectors.
Get the pydoll source
Clone the repository and explore it locally.
git clone https://github.com/autoscrape-labs/pydoll.gitcd pydoll# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Requires Python >= 3.10; async/await patterns mandatory (not synchronous blocking API).
- No external binary dependencies (WebDriver), but a compatible Chromium/Chrome/Edge must be installed on the host.
- Test coverage and CI checks (pytest, mypy, ruff) are in place, but code stability unknown given young age of project.
- Anti-detection features (humanization, fingerprinting) are built-in, but their effectiveness against real-world bot detection varies by target.
- Error handling and debugging require familiarity with CDP concepts and asyncio; IDE autocomplete mitigates some friction.
When to avoid it — and what to weigh
- You need a production-grade, battle-tested tool — Project was created October 2024 and is only ~7 months old. No long-term stability history, adoption metrics, or enterprise support visibility.
- You require Selenium/Playwright compatibility — Pydoll is a standalone library; no drop-in replacement for existing Selenium/Playwright codebases. Migration effort could be significant.
- Your target sites actively block CDP or non-WebDriver connections — While no WebDriver flag is an advantage, some sites may detect or block CDP connections. Effectiveness depends on target-specific anti-automation measures.
- You need cross-browser automation beyond Chromium — Pydoll is Chromium-only (Chrome, Edge). Firefox, Safari, or IE automation requires other tools.
License & commercial use
MIT License. Permissive OSI license allowing commercial use, modification, and distribution with minimal restrictions (attribution and license notice required).
MIT permits commercial use without explicit licensing agreement required. However, use for web scraping or anti-bot evasion may violate Terms of Service of target websites; legal review of your specific use case is essential. No warranty or liability limitation language in MIT license.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Good |
| Assessment confidence | Medium |
Library operates at network and browser-level APIs (CDP, network interception, DOM manipulation). No independent security audit claimed. Connecting to a live browser instance exposes system to browser exploits. Use for automated access to services may violate ToS or legal restrictions. Dependencies on pydantic and asyncio libraries should be reviewed. No security disclosure process visible in DATA.
Alternatives to consider
Playwright (Python)
Mature, multi-browser, well-documented, strong community. Requires WebDriver but widely adopted; supports similar humanization via API. Better for projects requiring stability and cross-browser coverage.
Selenium + Python
Industry standard, maximum compatibility, extensive documentation. Heavier and slower than Pydoll; requires WebDriver binary. Best if legacy codebase or WebDriver detection is not a blocker.
Puppeteer-extra (JavaScript/Node.js)
Purpose-built for evasion and stealth; plugins for anti-detection. JavaScript ecosystem if your stack allows it. Less feature-rich for structured extraction; no native Python.
Build on pydoll with DEV.co software developers
Explore Pydoll's async API, humanization features, and structured extraction for your scraping or automation project. Review the docs and test it on a non-critical site first.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
pydoll FAQ
Does Pydoll work if a website detects navigator.webdriver?
Is Pydoll suitable for production scraping at scale?
Can I use Pydoll with Selenium or Playwright code?
What Python versions are supported?
Software development & web development with DEV.co
DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If pydoll is part of your open-source testing roadmap, our team can implement, customize, migrate, and maintain it.
Ready to automate browsers without WebDriver detection?
Explore Pydoll's async API, humanization features, and structured extraction for your scraping or automation project. Review the docs and test it on a non-critical site first.