The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech LeadsJuly 17-18

Join

Pydoll: Async Web Automation in Python!


Alt text

Tests Ruff CI Release Total lines Files Comments

Pydoll is revolutionizing browser automation! Unlike other solutions, it eliminates the need for webdrivers, providing a smooth and reliable automation experience with native asynchronous performance.

DocumentationQuick StartContributingSupportLicense

Big Updates Are in the Works!

I'm working on a major update for pydoll, bringing several improvements and exciting new features. This version introduces some breaking changes, and I'm taking time to make things cleaner, faster, and easier to maintain.

What's changing?

New Features Coming

What to Expect

This is a big shift and may take a bit of time. While v2 is in progress:

Thanks for your continued support, and stay tuned!

Key Features

🔹 Zero Webdrivers! Say goodbye to webdriver compatibility nightmares
🔹 Native Captcha Bypass! Smoothly handles Cloudflare Turnstile and reCAPTCHA v3*
🔹 Async Performance for lightning-fast automation
🔹 Human-like Interactions that mimic real user behavior
🔹 Powerful Event System for reactive automations
🔹 Multi-browser Support including Chrome and Edge

Installation

pip install pydoll-python

Quick Start

Get started with just a few lines of code:

import asyncio
from pydoll.browser.chrome import Chrome
from pydoll.constants import By

async def main():
    async with Chrome() as browser:
        await browser.start()
        page = await browser.get_page()
        
        # Works with captcha-protected sites
        await page.go_to('https://example-with-cloudflare.com')
        button = await page.find_element(By.CSS_SELECTOR, 'button')
        await button.click()

asyncio.run(main())

Need to configure your browser? Easy!

from pydoll.browser.chrome import Chrome
from pydoll.browser.options import Options

options = Options()
# Add a proxy
options.add_argument('--proxy-server=username:password@ip:port')
# Custom browser location
options.binary_location = '/path/to/your/browser'

async with Chrome(options=options) as browser:
    await browser.start()
    # Your code here

Documentation

For comprehensive documentation, examples, and deep dives into Pydoll's features, visit our official documentation site.

The documentation includes:

Sponsors

CapSolver is an AI-powered tool that easily bypasses Captchas, allowing uninterrupted access to public data with fast, reliable, and cost-effective. And please enjoy the code PYDOLL to get an extra 6% balance! You can register here.

Pydoll Sponsors

Pydoll is proudly supported by these amazing sponsors who believe in the future of webdriver-free automation. Their contributions make it possible for us to maintain and improve this project. Interested in becoming a sponsor? Check out our GitHub Sponsors page for more information about the perks and benefits of sponsoring this project!

Contributing

We'd love your help making Pydoll even better! Check out our contribution guidelines to get started. Whether it's fixing bugs, adding features, or improving documentation - all contributions are welcome!

Please make sure to:

Support My Work

If you find my projects helpful, consider sponsoring me on GitHub.
You'll get access to exclusive perks like prioritized support, custom features, and more!

Can't sponsor right now? No problem — you can still help a lot by:

Every bit of support makes a difference — thank you! 🙌

📄 License

Pydoll is licensed under the MIT License.


Pydoll — Making browser automation magical! ✨

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.