No project description provided
Project description
🚀 Pydoll: Async Web Automation in Python!
Pydoll is an innovative Python library that's redefining Chromium browser automation! Unlike other solutions, Pydoll completely eliminates the need for webdrivers, providing a much more fluid and reliable automation experience.
⭐ Extraordinary Features
- Zero Webdrivers! Say goodbye to webdriver compatibility and configuration headaches
- Native Captcha Bypass! Naturally passes through Cloudflare Turnstile and reCAPTCHA v3 *
- Performance thanks to native asynchronous programming
- Realistic Interactions that simulate human behavior
- Advanced Event System for complex and reactive automations
Note: for cloudflare captcha, you have to perform a click in the checkbox. Just find a div containing the iframe and use the
.click()
method. Automatic detection and click coming soon!
Table of Contents
🔥 Installation
pip install pydoll-python
⚡ Quick Start
See how simple it is to get started - no webdriver configuration needed!
import asyncio
from pydoll.browser.chrome import Chrome
from pydoll.constants import By
async def main():
# Start the browser with no additional webdriver configuration!
async with Chrome() as browser:
await browser.start()
page = await browser.get_page()
# Navigate through captcha-protected sites without worry
await page.go_to('https://example-with-cloudflare.com')
button = await page.find_element(By.CSS_SELECTOR, 'button')
await button.click()
asyncio.run(main())
🎯 Core Components
Browser Interface
Powerful interface for global browser control:
async def browser_examples():
async with Chrome() as browser:
await browser.start()
# Control multiple pages with incredible ease
pages = [await browser.get_page() for _ in range(3)]
# Advanced settings with a simple command
await browser.set_window_maximized()
Page Interface
Individual page control with surgical precision:
async def page_examples():
page = await browser.get_page()
# Smooth navigation, even on protected sites
await page.go_to('https://site-with-recaptcha.com')
# Capture perfect screenshots
await page.get_screenshot('/screenshots/evidence.png')
WebElement Interface
Interact with elements like a real user:
async def element_examples():
# Natural and precise interactions
input_field = await page.find_element(By.CSS_SELECTOR, 'input')
await input_field.type_keys('Hello World') # Realistic typing!
# Intuitive chained operations
dropdown = await page.find_element(By.CSS_SELECTOR, 'select')
await dropdown.select_option('value')
# Realistic clicks with offset
button = await page.find_element(By.CSS_SELECTOR, 'button')
await button.click(x_offset=5, y_offset=10)
🚀 Advanced Features
Event System
Powerful event system for intelligent automation:
from pydoll.events.page import PageEvents
async def event_example():
await page.enable_page_events()
# React to events in real-time!
await page.on(PageEvents.PAGE_LOADED,
lambda e: print('Page loaded successfully!'))
Concurrent Scraping
Scrape multiple pages simultaneously with extraordinary performance:
async def concurrent_example():
pages = [await browser.get_page() for _ in range(10)]
# Parallel scraping with intelligent resource management
results = await asyncio.gather(
*(scrape_page(page) for page in pages)
)
# Just declare the scrape_page method and see the magic happens!
Proxy Configuration
Robust proxy support, including authentication:
async def proxy_example():
options = Options()
# Private or public proxies, you choose!
options.add_argument('--proxy-server=username:password@ip:port')
async with Chrome(options=options) as browser:
await browser.start()
For exploring all available methods and additional features, check out:
- Browser interface: pydoll/browser/base.py
- Page interface: pydoll/browser/page.py
- WebElement interface: pydoll/element.py
- Chrome options: Chromium Command Line Switches
🎉 Start Now!
Feel free to use, open issues and contributing!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pydoll_python-1.2.3.tar.gz
.
File metadata
- Download URL: pydoll_python-1.2.3.tar.gz
- Upload date:
- Size: 36.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.10.16 Linux/6.8.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
66e258d6ce39cbbfcf76097d8f1fc90602adfc3acbff2a612ede75c7d3351db7
|
|
MD5 |
5a08b958422cbabf3fb3fca3c3569376
|
|
BLAKE2b-256 |
decf84768f04a0e314aa76dce7caf9019bd90845e31ee1dcd3c54cd703df30ec
|
File details
Details for the file pydoll_python-1.2.3-py3-none-any.whl
.
File metadata
- Download URL: pydoll_python-1.2.3-py3-none-any.whl
- Upload date:
- Size: 45.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.10.16 Linux/6.8.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
adebcfa76c582faff7dd1b4e88811a88e8d011cc0763525771e9e1e6df44623f
|
|
MD5 |
6e570823bfe657bc863939a2ace51a8f
|
|
BLAKE2b-256 |
612c390a0b3b68142e2532fe0058483d888d577072f1d2dd02385a6ace4e5cb3
|