Sobre el proyecto
Pydoll es una biblioteca de Python para automatizar navegadores basados en Chromium sin WebDriver. Se conecta directamente a Chrome a través del protocolo DevTools mediante WebSocket, por lo que no hay binario de controlador ni se expone la bandera navigator.webdriver. La API es asíncrona y completamente tipada, construida sobre asyncio y verificada con mypy.
Capacidades clave descritas en el README:
- Interacciones humanizadas: movimiento del ratón a lo largo de curvas de Bézier, escritura realista y física de desplazamiento, habilitadas con humanize=True. El README afirma que esto suele ser suficiente para superar desafíos de comportamiento como Cloudflare Turnstile o reCAPTCHA v3, dependiendo del navegador y la reputación de la IP.
- Inyección de huellas digitales: tab.apply_fingerprint() sobrescribe User-Agent, Client Hints, navigator, WebGL, canvas, pantalla, fuentes, zona horaria y configuración regional, manteniendo valores consistentes. El README dice que las sobrescrituras inyectadas sobreviven a la introspección de toString y prototipos y se propagan a los Web Workers. También señala que Pydoll no genera ni distribuye huellas digitales; los perfiles de ejemplo son solo referencias.
- Extracción estructurada: define un modelo Pydantic y llama a tab.extract() o tab.extract_all() para obtener datos tipados y validados, con detección automática de CSS/XPath, selección de atributos, transformaciones personalizadas y modelos anidados.
- Shadow DOM e iframes: soporte para raíces shadow, incluidas las cerradas, además de iframes de origen cruzado, usando la misma API de búsqueda/consulta/clic.
- Control de red: interceptación de solicitudes para bloquear anuncios y rastreadores, monitoreo de tráfico para descubrimiento de API, grabación y reproducción de HAR 1.2, y solicitudes HTTP autenticadas que heredan la sesión del navegador.
- Paquetes de página: guarda una página y sus recursos como un zip, opcionalmente incrustando los recursos en un único archivo HTML.
- Concurrencia y conexiones remotas: múltiples pestañas y contextos de navegador aislados, además de conexión a navegadores en Docker o servidores remotos.
- Decorador de reintentos con lógica de recuperación personalizada y retroceso exponencial.
La instalación se realiza mediante pip install pydoll-python, sin necesidad de binarios de WebDriver ni dependencias externas. El README señala que el proyecto actualmente lo mantiene una sola persona, que el desarrollo continúa a un ritmo más tranquilo y que el soporte para Firefox está planificado como objetivo cuando el proyecto alcance 10 mil estrellas. También indica que la evasión de Turnstile no es una evasión mágica y depende del entorno y la reputación de la IP.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.