|
22 | 22 | </p> |
23 | 23 |
|
24 | 24 |
|
| 25 | +## Key Features |
| 26 | + |
| 27 | +🔹 **Zero Webdrivers!** Say goodbye to webdriver compatibility nightmares |
| 28 | +🔹 **Native Captcha Bypass!** Smoothly handles Cloudflare Turnstile and reCAPTCHA v3* |
| 29 | +🔹 **Async Performance** for lightning-fast automation |
| 30 | +🔹 **Human-like Interactions** that mimic real user behavior |
| 31 | +🔹 **Powerful Event System** for reactive automations |
| 32 | +🔹 **Multi-browser Support** including Chrome and Edge |
| 33 | + |
25 | 34 | ## Why Pydoll Exists |
26 | 35 |
|
27 | 36 | Picture this: you need to automate browser tasks. Maybe it's testing your web application, scraping data from websites, or automating repetitive processes. Traditionally, this meant dealing with external drivers, complex configurations, and a host of compatibility issues that seemed to appear out of nowhere. |
@@ -171,77 +180,6 @@ asyncio.run(advanced_captcha_bypass()) |
171 | 180 | - **Fast**: Instant solving without network delays to external services |
172 | 181 | - **Seamless Integration**: Captcha bypass happens transparently in your automation flow |
173 | 182 |
|
174 | | -### Human-Like Interactions |
175 | | - |
176 | | -Pydoll's secret weapon against bot detection is its sophisticated human behavior simulation. Modern websites use advanced algorithms to detect automation by analyzing interaction patterns, timing, and mouse movements. Pydoll counters this with realistic human simulation. |
177 | | - |
178 | | -**What Makes Interactions Human-Like:** |
179 | | -- **Natural Timing Variations**: Random delays between actions that mimic human hesitation and thinking time |
180 | | -- **Realistic Mouse Movements**: Curved, natural mouse paths instead of straight lines |
181 | | -- **Human Typing Patterns**: Variable typing speeds with realistic pauses and occasional typos |
182 | | -- **Scroll Behavior**: Natural scrolling patterns with momentum and easing |
183 | | -- **Focus and Attention Simulation**: Realistic tab switching and window focus patterns |
184 | | - |
185 | | -```python |
186 | | -import asyncio |
187 | | -import random |
188 | | -from pydoll.browser import Chrome |
189 | | - |
190 | | -async def human_like_automation(): |
191 | | - async with Chrome() as browser: |
192 | | - tab = await browser.start() |
193 | | - await tab.go_to('https://example.com') |
194 | | - |
195 | | - # Human-like typing with natural variations |
196 | | - search_box = await tab.find(id='search') |
197 | | - await search_box.type('web automation', human_like=True) |
198 | | - # Automatically includes: random typing speed, occasional pauses, |
199 | | - # natural timing between keystrokes |
200 | | - |
201 | | - # Human-like clicking with realistic mouse movement |
202 | | - search_button = await tab.find(tag_name='button', text='Search') |
203 | | - await search_button.click(human_like=True) |
204 | | - # Automatically includes: curved mouse movement, natural click timing, |
205 | | - # slight position variations |
206 | | - |
207 | | - # Human-like scrolling behavior |
208 | | - await tab.scroll_to_element( |
209 | | - await tab.find(class_name='results'), |
210 | | - smooth=True, |
211 | | - human_like=True |
212 | | - ) |
213 | | - # Includes: momentum scrolling, natural easing, realistic speed |
214 | | - |
215 | | - # Simulate human reading/scanning time |
216 | | - results = await tab.find(class_name='result-item', find_all=True) |
217 | | - for result in results: |
218 | | - # Simulate human scanning time before clicking |
219 | | - await asyncio.sleep(random.uniform(0.5, 2.0)) |
220 | | - |
221 | | - # Human-like hover before clicking (common human behavior) |
222 | | - await result.hover(human_like=True) |
223 | | - await asyncio.sleep(random.uniform(0.2, 0.8)) |
224 | | - |
225 | | - if await result.find(text='relevant content', raise_exc=False): |
226 | | - await result.click(human_like=True) |
227 | | - break |
228 | | - |
229 | | -asyncio.run(human_like_automation()) |
230 | | -``` |
231 | | - |
232 | | -**Advanced Human Simulation Features:** |
233 | | -- **Behavioral Fingerprinting Resistance**: Varies interaction patterns to avoid detection |
234 | | -- **Attention Simulation**: Realistic focus patterns and tab switching behavior |
235 | | -- **Error Simulation**: Occasional "human mistakes" like misclicks or typos that are corrected |
236 | | -- **Reading Pattern Simulation**: Natural eye movement and reading time simulation |
237 | | -- **Multi-tab Behavior**: Realistic tab management and switching patterns |
238 | | - |
239 | | -**Detection Evasion Techniques:** |
240 | | -- **Canvas Fingerprinting Protection**: Randomizes canvas rendering signatures |
241 | | -- **WebGL Fingerprinting Protection**: Varies WebGL parameters to avoid tracking |
242 | | -- **Font Fingerprinting Resistance**: Randomizes font rendering characteristics |
243 | | -- **Timezone and Locale Variation**: Realistic geographic and temporal variations |
244 | | -- **Browser Fingerprint Randomization**: Varies browser characteristics between sessions |
245 | 183 |
|
246 | 184 | ### Advanced Element Finding |
247 | 185 |
|
@@ -422,7 +360,6 @@ The documentation includes: |
422 | 360 | - **Getting Started Guide** - Step-by-step tutorials |
423 | 361 | - **API Reference** - Complete method documentation |
424 | 362 | - **Advanced Techniques** - Network interception, event handling, performance optimization |
425 | | -- **Migration Guide** - Upgrading from older versions |
426 | 363 | - **Troubleshooting** - Common issues and solutions |
427 | 364 | - **Best Practices** - Patterns for reliable automation |
428 | 365 |
|
|
0 commit comments