Reference

Gérer plusieurs types de CAPTCHA dans l'extension CaptchaAI

Périmètre sûr : ce guide s'applique uniquement à vos propres applications, à vos environnements de QA ou de production, ou à des systèmes pour lesquels vous disposez d'une autorisation écrite. Il ne couvre ni l'automatisation de sites tiers sans accord, ni les techniques d'anti-détection.

Une seule intégration bien pensée suffit pour que l'extension CaptchaAI prenne en charge plusieurs familles de CAPTCHA — reCAPTCHA v2 et v3, Cloudflare Turnstile, GeeTest v3, CAPTCHA image ou grille — sans réécrire votre code à chaque changement de page. La vraie difficulté n'est pas de résoudre un CAPTCHA isolé dans un notebook : c'est de garder ce comportement stable quand le workflow tourne sans surveillance, en CI, dans un cron ou derrière une file d'attente interne. Ce guide de référence rassemble le workflow, les indicateurs et les codes d'erreur à citer en revue de code.

Le workflow recommandé, étape par étape

Gardez cette séquence : elle reste identique quelle que soit la famille de CAPTCHA rencontrée.

  1. Capturez exactement ce dont le solveur a besoin : seulement les paramètres attendus par la famille de CAPTCHA (sitekey, URL de la page, action, proxy éventuel). Le superflu crée de fausses pistes.
  2. Soumettez la tâche à https://ocr.captchaai.com/in.php avec json=1. Traitez tout statut différent de 1 comme une erreur : journalisez la réponse et remontez-la vers votre supervision.
  3. Interrogez le résultat sur https://ocr.captchaai.com/res.php. Patientez 15 s, puis interrogez toutes les 5 s, avec un plafond de 120 s par tâche.
  4. Appliquez le token dans la même session que celle qui a déclenché le défi : même contexte de navigateur, même cookie jar. Une session dépareillée est la première cause de rejet après résolution.
  5. Suivez la latence, les retries et l'acceptation en aval. Réussite du solveur et réussite du workflow sont deux métriques distinctes : mesurez les deux.

Exemple de code

Côté client, vérifiez le solde avant de lancer un lot : un solde à zéro est la cause d'échec la plus facile à éliminer en amont.

import os
import requests

API_KEY = os.environ['CAPTCHAAI_KEY']

def get_balance() -> float:
    resp = requests.post(
        'https://api.captchaai.com/getBalance',
        json={'clientKey': API_KEY},
        timeout=15,
    )
    resp.raise_for_status()
    return float(resp.json().get('balance', 0))

Mesurer et journaliser

Ces chiffres reposent sur des mesures observées et varient selon l'environnement, le volume et le moment de la journée. Suivez ces indicateurs dans le tableau de bord de votre application :

  • Latence p50 sous 25 s pour les CAPTCHA à token, sous 8 s pour l'OCR d'image.
  • Latence p95 sous 60 s, pour garder la traîne contenue.
  • Taux de réussite du solveur et acceptation de bout en bout au-dessus de 95 % après token.
  • Chaque appel corrélé à un identifiant unique via votre traçage distribué.

Dépannage

Symptôme Cause probable Correctif
ERROR_WRONG_USER_KEY Clé copiée avec un espace parasite ou mauvais compte. Recopiez la clé et stockez-la comme secret CI.
ERROR_PAGEURL / ERROR_BAD_PARAMETERS Paramètre requis absent ou mal formé. Revalidez l'URL et le sitekey face au HTML réel.
Token refusé après résolution Token appliqué dans une autre session que le défi. Gardez résolution et envoi dans la même session.

Gérer plusieurs CAPTCHA en production

Prenons la version que vous exécutez vraiment : une équipe basée à Lyon fait tourner un worker interne qui traverse une étape protégée par CAPTCHA dans sa propre application, hébergée sur une région européenne (eu-west-3, Paris). Le premier passage fonctionne en cinq minutes ; ensuite, l'intégration doit survivre aux déploiements, aux à-coups réseau et au changement de famille de CAPTCHA sur la page. Ce qu'il vous faut alors : une latence prévisible, des modes d'échec propres et un code lisible. Si votre flux collecte des données, minimisez les informations personnelles traitées et vérifiez vos obligations RGPD.

FAQ

Quels types de CAPTCHA l'extension CaptchaAI prend-elle en charge ?

Elle couvre reCAPTCHA v2 et v3, Cloudflare Turnstile et Cloudflare Challenge, GeeTest v3, les CAPTCHA image/OCR, les grilles d'images et BLS, plus CaptchaFox (bêta), Friendly Captcha (bêta) et Lemin (bêta). hCaptcha et FunCaptcha (Arkose Labs) ne sont pas pris en charge, et GeeTest v4 est annoncé comme à venir.

Pourquoi un token valide est-il parfois refusé ?

Presque toujours à cause d'une session dépareillée : appliquez le token dans le contexte ou le client HTTP qui a déclenché le défi, avec le même cookie jar. Vérifiez ensuite que l'URL et le sitekey envoyés correspondent au HTML réel.

La facturation change-t-elle si je traite plusieurs familles de CAPTCHA ?

Non. CaptchaAI facture au thread, pas au type ni au solve, et chaque plan inclut des résolutions illimitées par thread. Le plan BASIC ($15/mois, 5 threads) suffit aux petits workflows ; montez en threads quand le parallélisme l'exige.

Guides connexes

Fiabilisez vos workflows CAPTCHA avec une méthode reproductible et mesurable. – Créez votre compte CaptchaAI.

Les commentaires sont désactivés pour cet article.