Retour au blog
Guide8 min de lecture
Résolution automatique de CAPTCHA dans les navigateurs antidetect : guide pratique
Un pas à pas sur la façon dont Ornold détecte les sitekeys, identifie les types de challenge et injecte les tokens sur de nombreux profils en même temps.
5 avr. 2026Pourquoi les CAPTCHA sont différents dans les flux antidetect
Dans un navigateur normal, vous résolvez un CAPTCHA une fois et vous continuez. Dans l’automatisation antidetect, les CAPTCHA apparaissent simultanément sur des dizaines de profils de navigateur — chacun avec sa propre session, cookies et empreinte digitale. Les résoudre un par un anéantit l’objectif de l’automatisation parallèle.
Ornold traite la résolution de CAPTCHA comme une opération par lot : détecte le type de défi sur toutes les sessions actives, extrait les sitekeys, les envoie à un solveur et injecte les tokens de réponse — tout en un seul passage coordonné.
Types de CAPTCHA supportés
Ornold détecte et résout les types de défis les plus courants trouvés sur les sites web modernes :
- reCAPTCHA v2 — La case classique « Je ne suis pas un robot » et les défis de grille d’images
- reCAPTCHA v3 — Vérification invisible basée sur un score qui s’exécute en arrière-plan
- hCaptcha — Défis de classification d’images (« sélectionnez toutes les images avec des motos »)
- Cloudflare Turnstile — Le défi non interactif qui a remplacé reCAPTCHA sur de nombreux sites
- Défis personnalisés — Boutons de maintien, puzzles de curseur et autres vérifications interactives
Le solveur choisit automatiquement la bonne approche en fonction de ce qu’il détecte sur la page. Vous n’avez pas besoin de spécifier le type de CAPTCHA — appelez simplement `browser_solve_captcha()` et Ornold s’en charge.
Comment fonctionne le pipeline de résolution
Le processus de résolution de CAPTCHA comporte quatre étapes. Chacune s’exécute en parallèle sur toutes les sessions de navigateur actives.
Étape 1 — Détection
Ornold analyse chaque session de navigateur active à la recherche de modèles de CAPTCHA connus. Il vérifie :
- iframes reCAPTCHA et balises de script (`google.com/recaptcha`)
- Conteneurs hCaptcha et scripts API (`hcaptcha.com`)
- Widgets Turnstile (`challenges.cloudflare.com`)
- Éléments de défi personnalisés (boutons de maintien, pistes de curseur)
La détection s’effectue via l’inspection du DOM et, si nécessaire, l’analyse visuelle. Si un CAPTCHA est caché derrière une superposition ou chargé dynamiquement, le secours visuel le détectera.
// La détection se produit automatiquement lors de l’appel de solve
const result = await browser_solve_captcha();
// result montre quelles sessions avaient des CAPTCHA et leurs types
// { total: 20, detected: 18, solved: 18, failed: 0 }
Étape 2 — Extraction du Sitekey
Chaque widget CAPTCHA est lié à un sitekey — un identifiant public qui indique au fournisseur de CAPTCHA quel site demande une vérification. Ornold extrait automatiquement cette clé du DOM de la page.
Pour reCAPTCHA, le sitekey se trouve dans l’attribut `data-sitekey` du div du widget ou dans les paramètres d’URL du script. Pour hCaptcha, il se trouve dans un attribut similaire. Pour Turnstile, il est intégré dans la configuration du script Cloudflare.
Le sitekey, ainsi que l’URL de la page, est envoyé au service de résolution. C’est ce qui rend la solution valide — le token est généré pour cette combinaison spécifique de site et de clé.
Étape 3 — Génération de Token
Ornold envoie le sitekey et l’URL de la page à un service de résolution de CAPTCHA (2captcha). Le service retourne un token de réponse — une chaîne qui prouve que le défi a été complété.
Les temps de résolution varient selon le type de CAPTCHA :
- reCAPTCHA v2 — 15-45 secondes (reconnaissance d’images requise)
- reCAPTCHA v3 — 5-15 secondes (basé sur un score, pas d’images)
- hCaptcha — 15-60 secondes (dépend du niveau de difficulté)
- Turnstile — 5-20 secondes (généralement plus rapide que les défis basés sur des images)
Les tokens sont générés en parallèle pour toutes les sessions. Si 20 navigateurs ont besoin d’une résolution, les 20 demandes sont envoyées simultanément. Le temps d’attente total est à peu près le même que de résoudre un seul.
Étape 4 — Injection de Token
Une fois que le token arrive, Ornold l’injecte dans la page. La méthode d’injection dépend du type de CAPTCHA :
- reCAPTCHA v2/v3 — Définit la valeur de la textarea `g-recaptcha-response` et appelle la fonction de rappel
- hCaptcha — Définit le champ `h-captcha-response` et déclenche le rappel de vérification
- Turnstile — Injecte le token dans le champ de réponse Turnstile et envoie l’événement de succès
Après l’injection, Ornold clique éventuellement sur le bouton d’envoi ou attend l’avancement automatique de la page. Le widget CAPTCHA disparaît et le formulaire continue comme si un humain l’avait résolu.
// Flux complet de solve + verification
await browser_parallel_navigate({ url: "https://target.example/signup" });
await browser_parallel_fill({ ref: "email", values: emails });
// Résoudre les CAPTCHA sur toutes les sessions
const result = await browser_solve_captcha();
console.log(`Résolus : ${result.solved}/${result.total}`);
// Soumettre le formulaire
await browser_parallel_click({ ref: "submit" });
// Vérifier le succès
await browser_parallel_wait_for({ text: "Account created", timeoutMs: 15000 });
Gestion des défis de maintien de bouton
Certains sites utilisent des défis personnalisés qui nécessitent de maintenir un bouton enfoncé pendant plusieurs secondes. Ceux-ci ne peuvent pas être résolus par injection de token — ils nécessitent une véritable interaction souris.
Ornold détecte visuellement les défis de maintien et simule l’interaction : appuie sur le bouton, maintient la durée requise, puis relâche. Cela fonctionne en parallèle sur toutes les sessions actives.
// Détection et résolution du défi de maintien
const captchaCheck = await browser_detect_press_hold();
if (captchaCheck.detected) {
await browser_solve_press_hold();
// Attend la durée de maintien, puis relâche
}
Résolution de CAPTCHA par lot en pratique
Voici à quoi ressemble une véritable exécution de résolution de CAPTCHA sur 30 sessions Linken Sphere lors d’un flux d’enregistrement de compte :
- Naviguer les 30 sessions vers la page d’enregistrement
- Remplir les champs de formulaire avec des données par profil (emails uniques, noms, etc.)
- Appeler `browser_solve_captcha()` — Ornold détecte reCAPTCHA v2 sur 28 sessions, Turnstile sur 2 sessions
- Les 30 demandes de résolution sont envoyées en parallèle
- Les tokens arrivent en 15-40 secondes
- Ornold injecte les tokens et clique sur soumettre sur chaque session
- 29 sur 30 réussissent. 1 session obtient un défi secondaire — Ornold réessaie automatiquement
Validation après résolution
Résoudre le CAPTCHA n’est que la moitié du travail. Vous devez vérifier que la solution a été acceptée et que la page a avancé. Ornold fournit des outils pour cela :
// Vérifier que toutes les sessions ont dépassé le CAPTCHA
const status = await browser_status();
// Vérifier quelles sessions sont sur la page attendue
await browser_parallel_wait_for({ text: "Welcome", timeoutMs: 10000 });
// Si certaines sessions sont bloquées, prendre une capture d’écran pour diagnostiquer
await browser_parallel_screenshot();
Si une session échoue la validation, vous pouvez réessayer la résolution uniquement pour cette session ou la marquer pour examen manuel. La clé est de détecter les défaillances tôt plutôt que de les découvrir à la fin d’un long flux de travail.
Crédits CAPTCHA et facturation
Chaque résolution de CAPTCHA consomme un crédit de votre compte Ornold. Les crédits sont déduits lorsque le service de résolution retourne un token — pas lorsque vous appelez la fonction solve.
- Les comptes gratuits reçoivent 5 crédits CAPTCHA après avoir complété la visite d’intégration
- Les plans payants incluent une allocation de crédits mensuelle selon votre niveau
- Des crédits supplémentaires peuvent être achetés séparément
- Les résolutions échouées (où le service n’a pas pu générer un token) ne consomment pas de crédits
Vérifiez votre solde de crédits sur le tableau de bord Ornold avant d’exécuter de grands lots. Si les crédits s’épuisent au milieu d’un lot, certaines sessions auront des CAPTCHA non résolus.
Dépannage des problèmes courants
- « CAPTCHA non détecté » — La page peut charger le défi dynamiquement. Ajoutez une attente avant la résolution : `await browser_parallel_wait_for({ selector: "iframe[src*=recaptcha]", timeoutMs: 10000 })`
- « Token rejeté » — Le token peut avoir expiré (valide ~2 minutes). Assurez-vous que le formulaire est prêt avant la résolution, afin que vous puissiez soumettre immédiatement après.
- « Délai d’expiration de la résolution » — Le service de résolution est surchargé ou le type de CAPTCHA est inhabituellement difficile. Réessayez une fois. Si le problème persiste, vérifiez l’état du service sur le tableau de bord Ornold.
- « Défaillance partielle du lot » — Certaines sessions résolues, d’autres non. Utilisez `browser_status()` pour identifier les sessions bloquées et réessayez uniquement celles-ci.
- « Le maintien du bouton ne fonctionne pas » — Assurez-vous que l’élément de défi est visible et non couvert par une autre superposition. Essayez de faire défiler vers lui d’abord.
Meilleures pratiques
- Remplissez le formulaire avant de résoudre le CAPTCHA. Les tokens expirent en ~2 minutes, minimisez donc le temps entre la résolution et l’envoi.
- Utilisez `browser_status()` après la résolution pour vérifier que toutes les sessions ont avancé. Ne supposez pas le succès.
- Pour les grands lots (50+ sessions), résolvez par groupes de 20-30 pour éviter de surcharger le service de résolution.
- Surveillez votre solde de crédits. Configurez des alertes sur le tableau de bord si disponible.
- Si un site change fréquemment de fournisseur de CAPTCHA, utilisez le flux de détection automatique au lieu de coder en dur un type.