feature!: перенимаем реализацию прохождения cf_turnstile у scrapling

https://github.com/D4Vinci/Scrapling

BREAKING_CHANGES: клик отрабатывает, но прохода не случается
This commit is contained in:
protokey committed 2026-09-23 11:21:18 +04:00
1 parent f2d4d441f4
commit 8f7645b2b9
11 files changed
+193 -30

No files matched your search

+6 -3
View File
@@ -10,8 +10,8 @@ import random
import string
from typing import Optional
from playwright.async_api import TimeoutError
from playwright.async_api import Page
from patchright.async_api import TimeoutError
from patchright.async_api import Page
# последняя известная позиция курсора на страницу — Playwright не даёт её прочитать из браузера,
# поэтому считаем сами, чтобы следующее движение начиналось не из (0, 0), а оттуда, где реально
@@ -103,11 +103,14 @@ async def click_human(
"""move_mouse_human + клик с человеческой задержкой между наведением и down/up, вместо
мгновенного page.mouse.click(x, y)."""
await move_mouse_human(page, x, y, **move_kwargs)
print('wait for timeout')
await page.wait_for_timeout(random.uniform(50, 180))
print('key down')
await page.mouse.down(button=button)
print('sleep')
await page.wait_for_timeout(random.uniform(40, 99))
print('key up')
await page.mouse.up(button=button)
await move_mouse_human(page, x-50, y+50, **move_kwargs)
async def wait_for_networkidle(page: Page, timeout: Optional[int] = None):