Skip to content

Pydoll is a library for automating chromium-based browsers without a WebDriver, offering realistic interactions.

License

Notifications You must be signed in to change notification settings

autoscrape-labs/pydoll

Repository files navigation

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

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:

  • Detailed usage examples
  • API reference
  • Advanced techniques and patterns
  • Troubleshooting guides

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.

Pydoll Sponsors

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:

  • Write tests for new features or bug fixes
  • Follow coding style and conventions
  • Use conventional commits for pull requests
  • Run lint and test checks before submitting

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:

  • ⭐ Starring the repo
  • 🐦 Sharing it on social media
  • 📝 Writing blog posts or tutorials
  • 💬 Giving feedback or reporting issues

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

📄 License

Pydoll is licensed under the MIT License.


Pydoll — Making browser automation magical! ✨