Об этом проекте
Pydoll — это Python-библиотека для автоматизации браузеров на базе Chromium без WebDriver. Она подключается напрямую к Chrome через DevTools Protocol по WebSocket, поэтому нет ни бинарного файла драйвера, ни выставленного флага navigator.webdriver. API асинхронный и полностью типизированный, построен на asyncio и проверяется с помощью mypy.
Ключевые возможности, описанные в README:
- Очеловеченные взаимодействия: движение мыши по кривым Безье, реалистичный ввод и физика прокрутки, включаемые с помощью humanize=True. В README указано, что этого часто достаточно для прохождения поведенческих проверок, таких как Cloudflare Turnstile или reCAPTCHA v3, в зависимости от браузера и репутации IP.
- Инъекция отпечатков: tab.apply_fingerprint() переопределяет User-Agent, Client Hints, navigator, WebGL, canvas, screen, шрифты, часовой пояс и локаль, сохраняя согласованность значений. В README говорится, что внедрённые переопределения выдерживают toString и интроспекцию прототипов и распространяются на Web Workers. Также отмечено, что Pydoll не генерирует и не поставляет отпечатки; примеры профилей приведены только для справки.
- Структурированное извлечение: определите модель Pydantic и вызовите tab.extract() или tab.extract_all(), чтобы получить типизированные, проверенные данные, с автоопределением CSS/XPath, нацеливанием на атрибуты, пользовательскими преобразованиями и вложенными моделями.
- Shadow DOM и iframes: поддержка shadow root, включая закрытые, а также кросс-доменных iframe, с использованием того же API поиска/запроса/клика.
- Управление сетью: перехват запросов для блокировки рекламы и трекеров, мониторинг трафика для обнаружения API, запись и воспроизведение HAR 1.2, а также аутентифицированные HTTP-запросы, наследующие сессию браузера.
- Пакеты страниц: сохранение страницы и её ресурсов в виде zip-архива, с возможностью встраивания ресурсов в один HTML-файл.
- Параллелизм и удалённые подключения: несколько вкладок и изолированных контекстов браузера, а также подключение к браузерам в Docker или на удалённых серверах.
- Декоратор повторных попыток с пользовательской логикой восстановления и экспоненциальной задержкой.
Установка выполняется через pip install pydoll-python, без необходимости в бинарных файлах WebDriver или внешних зависимостях. В README отмечено, что в настоящее время проект поддерживается одним человеком, что разработка продолжается в более спокойном темпе, и что поддержка Firefox запланирована как цель после достижения проектом 10 тысяч звёзд. Также указано, что обход Turnstile не является магическим обходом и зависит от окружения и репутации IP.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.