À propos du projet

Pydoll est une bibliothèque Python permettant d'automatiser les navigateurs basés sur Chromium sans WebDriver. Elle se connecte directement à Chrome via le protocole DevTools par WebSocket, sans binaire de pilote et sans exposer l'indicateur navigator.webdriver. L'API est asynchrone et entièrement typée, construite sur asyncio et vérifiée avec mypy. Principales capacités décrites dans le README : - Interactions humanisées : mouvement de la souris le long de courbes de Bézier, saisie et physique de défilement réalistes, activées avec humanize=True. Le README indique que cela suffit souvent à passer les défis comportementaux tels que Cloudflare Turnstile ou reCAPTCHA v3, selon le navigateur et la réputation de l'IP. - Injection d'empreintes : tab.apply_fingerprint() remplace User-Agent, Client Hints, navigator, WebGL, canvas, écran, polices, fuseau horaire et locale, en maintenant des valeurs cohérentes. Le README précise que les remplacements injectés survivent à l'inspection de toString et des prototypes et se propagent dans les Web Workers. Il note également que Pydoll ne génère ni ne fournit d'empreintes ; les profils d'exemple ne sont que des références. - Extraction structurée : définissez un modèle Pydantic et appelez tab.extract() ou tab.extract_all() pour obtenir des données typées et validées, avec détection automatique CSS/XPath, ciblage d'attributs, transformations personnalisées et modèles imbriqués. - Shadow DOM et iframes : prise en charge des racines shadow, y compris fermées, ainsi que des iframes cross-origin, en utilisant la même API find/query/click. - Contrôle réseau : interception des requêtes pour bloquer les publicités et les traqueurs, surveillance du trafic pour la découverte d'API, enregistrement et relecture HAR 1.2, et requêtes HTTP authentifiées qui héritent de la session du navigateur. - Bundles de pages : enregistrez une page et ses ressources sous forme de zip, avec possibilité d'intégrer les ressources dans un seul fichier HTML. - Concurrence et connexions distantes : plusieurs onglets et contextes de navigateur isolés, ainsi que la connexion à des navigateurs dans Docker ou sur des serveurs distants. - Décorateur de nouvelle tentative avec logique de récupération personnalisée et backoff exponentiel. L'installation se fait via pip install pydoll-python, sans binaire WebDriver ni dépendance externe requise. Le README note que le projet est actuellement maintenu par une seule personne, que le développement se poursuit à un rythme plus calme et que le support de Firefox est prévu comme objectif une fois que le projet atteindra 10 000 étoiles. Il indique également que le contournement de Turnstile n'est pas un contournement magique et dépend de l'environnement et de la réputation de l'IP.