Pydoll

Normal
GitHub Python MIT

Description

Pydoll is a WebDriver-free Chromium automation library that talks directly to the Chrome DevTools Protocol over WebSocket, with built-in anti-detection and Pydantic-powered structured extraction for scraping and AI agent use cases.

Key Features

  • WebDriver-free direct CDP access - communicates with Chrome DevTools Protocol over WebSocket, no driver binary required
  • Built-in anti-detection - human-like mouse movement, realistic typing cadence, and fingerprint preference control
  • Pydantic-powered extraction - define fields with Pydantic models, map the DOM directly to typed Python objects
  • Network interception and monitoring - block ads/trackers, watch traffic to discover hidden APIs
  • Shadow DOM and cross-origin iframes - full support for closed shadow roots and cross-origin iframe query and interaction
  • Fully async and typed - asyncio-native with 100% mypy type-check coverage

Use Cases

💡 Scrape targets protected by Cloudflare or other anti-bot systems
💡 Provide human-like browser interaction for AI agents
💡 Batch-monitor webpage changes or public-sentiment data
💡 Automate backend operations on e-commerce or SaaS portals
💡 Auto-fill and submit online forms

Quick Start

pip install pydoll-python

import asyncio
from pydoll.browser import Chrome

async def main():
    async with Chrome() as browser:
        tab = await browser.start()
        await tab.go_to("https://example.com")
        title = await tab.title
        print(f"Page title: {title}")

asyncio.run(main())

Related Projects