# Pydoll — Browser Automation Without WebDriver > Python async browser automation via Chrome DevTools Protocol. Built-in CAPTCHA solving, anti-detection, no Selenium needed. 6.7K+ stars. ## Install Save as a script file and run: # Pydoll — Browser Automation Without WebDriver ## Quick Use ```bash pip install pydoll ``` ```python import asyncio from pydoll.browser import Chrome from pydoll.constants import By async def main(): async with Chrome() as browser: page = await browser.start() await page.go_to("https://example.com") # Find and interact with elements search_box = await page.find_element(By.CSS_SELECTOR, "input[name='q']") await search_box.type_text("AI tools 2026") button = await page.find_element(By.CSS_SELECTOR, "button[type='submit']") await button.click() # Extract page content content = await page.get_content() print(content) asyncio.run(main()) ``` No ChromeDriver download needed — Pydoll talks directly to Chrome via CDP. --- ## Intro Pydoll is a Python library with 6,700+ GitHub stars for automating Chromium-based browsers without WebDriver (Selenium/ChromeDriver). It communicates directly via the Chrome DevTools Protocol (CDP), making automated sessions indistinguishable from real user browsing. With built-in CAPTCHA solving (reCAPTCHA v3, Cloudflare Turnstile), anti-detection fingerprinting, and full async/await support, Pydoll is designed for modern web scraping where traditional tools get blocked. Run dozens of concurrent browser sessions with Python's asyncio. Works with: Chrome, Chromium, Edge, Python 3.10+. Best for developers building web scrapers that need to bypass anti-bot systems. Setup time: under 2 minutes. --- ## Pydoll Features & Architecture ### Why Not Selenium/Playwright? | Feature | Selenium | Playwright | Pydoll | |---------|----------|------------|--------| | **WebDriver needed** | Yes | Yes | No (CDP direct) | | **Bot detection** | Easily detected | Detectable | Hard to detect | | **CAPTCHA solving** | External service | External service | Built-in | | **Async support** | Limited | Yes | Full asyncio | | **Setup complexity** | Driver versioning | Auto-install | Zero — uses system Chrome | ### Chrome DevTools Protocol (CDP) Pydoll connects to Chrome's built-in debugging interface: ```python # No driver download, no version matching # Just uses your installed Chrome async with Chrome() as browser: page = await browser.start() # You're controlling a real Chrome instance ``` Benefits: - No WebDriver fingerprint for bot detectors to find - Access to network interception, console logs, performance metrics - Full control over cookies, storage, headers - Works with any installed Chromium-based browser ### Built-in CAPTCHA Solving Handle reCAPTCHA and Turnstile without third-party services: ```python from pydoll.browser import Chrome async with Chrome() as browser: page = await browser.start() await page.go_to("https://site-with-captcha.com") # Pydoll automatically detects and solves CAPTCHAs # reCAPTCHA v3 — solved via token injection # Cloudflare Turnstile — solved via interaction simulation ``` ### Concurrent Sessions Run multiple browser instances in parallel: ```python import asyncio from pydoll.browser import Chrome async def scrape_url(url): async with Chrome() as browser: page = await browser.start() await page.go_to(url) return await page.get_content() async def main(): urls = ["https://site1.com", "https://site2.com", "https://site3.com"] results = await asyncio.gather(*[scrape_url(u) for u in urls]) for r in results: print(len(r), "chars") asyncio.run(main()) ``` ### Network Interception Monitor and modify network requests: ```python async with Chrome() as browser: page = await browser.start() # Listen to network events async def on_response(event): url = event["params"]["response"]["url"] if "api/data" in url: body = await page.get_response_body(event["params"]["requestId"]) print(f"API response: {body[:200]}") await page.enable_network() page.on("Network.responseReceived", on_response) await page.go_to("https://example.com") ``` ### Anti-Detection Features - No `navigator.webdriver` flag - No ChromeDriver process in task manager - Realistic mouse movements and typing delays - Proper viewport and screen resolution emulation - Cookie and localStorage persistence across sessions --- ## FAQ **Q: What is Pydoll?** A: Pydoll is a Python library with 6,700+ GitHub stars for browser automation via Chrome DevTools Protocol (CDP), without WebDriver. It features built-in CAPTCHA solving, anti-detection, and full async support. **Q: How is Pydoll different from Playwright or Selenium?** A: Pydoll skips WebDriver entirely, connecting directly to Chrome via CDP. This eliminates the WebDriver fingerprint that bot detectors look for. It also includes built-in CAPTCHA solving (reCAPTCHA v3, Cloudflare Turnstile) that Playwright and Selenium require external services for. **Q: Is Pydoll free?** A: Yes, fully open-source under MIT license. --- ## Source & Thanks > Created by [autoscrape-labs](https://github.com/autoscrape-labs). Licensed under MIT. > > [pydoll](https://github.com/autoscrape-labs/pydoll) — ⭐ 6,700+ Thanks to autoscrape-labs for building a modern, detection-resistant browser automation library. --- ## 快速使用 ```bash pip install pydoll ``` ```python import asyncio from pydoll.browser import Chrome from pydoll.constants import By async def main(): async with Chrome() as browser: page = await browser.start() await page.go_to("https://example.com") content = await page.get_content() print(content) asyncio.run(main()) ``` --- ## 简介 Pydoll 是一个拥有 6,700+ GitHub stars 的 Python 浏览器自动化库,通过 Chrome DevTools Protocol (CDP) 直接控制浏览器,无需 WebDriver(Selenium/ChromeDriver)。内置 CAPTCHA 自动解决(reCAPTCHA v3、Cloudflare Turnstile)、反检测指纹和完整 async/await 支持,自动化会话与真实用户浏览无法区分。 适用于:Chrome、Chromium、Edge、Python 3.10+。适合需要绕过反爬系统的网页抓取开发者。 --- ## 核心优势 ### 无需 WebDriver 直接通过 CDP 连接 Chrome,不需要下载 ChromeDriver,不留 WebDriver 指纹。 ### 内置 CAPTCHA 解决 自动处理 reCAPTCHA v3 和 Cloudflare Turnstile,无需第三方服务。 ### 全异步支持 基于 Python asyncio,可并发运行数十个浏览器实例。 ### 反检测特性 无 navigator.webdriver 标记、真实鼠标轨迹模拟、Cookie 持久化。 --- ## 来源与感谢 > Created by [autoscrape-labs](https://github.com/autoscrape-labs). Licensed under MIT. > > [pydoll](https://github.com/autoscrape-labs/pydoll) — ⭐ 6,700+ --- Source: https://tokrepo.com/en/workflows/708bb34d-62a7-4b41-b5ed-9d921e932194 Author: TokRepo精选