Captcha GeeTest expliqué : fonctionnement et résolution
GeeTest est un fournisseur de captcha dont les widgets demandent au visiteur d'accomplir une tâche visuelle : faire glisser une pièce de puzzle dans un trou, cliquer sur un ensemble d'icônes dans un ordre donné, ou suivre un court mouvement de curseur. On le rencontre souvent sur les sites de commerce en ligne, les pages de connexion et les backends d'applications, dans de nombreuses régions. C'est aussi l'une des familles de captcha que Scarnox ne résout pas encore. Ce guide explique le fonctionnement de GeeTest, pourquoi l'automatiser est plus difficile qu'un widget à token, les approches que les gens utilisent en général, et où en est le support Scarnox aujourd'hui.
Ce que fait GeeTest sur une page
Un captcha GeeTest se charge généralement en trois étapes :
- La page inclut le script GeeTest et crée un widget avec un identifiant de captcha. Dans de nombreuses intégrations, cet identifiant est passé dans un paramètre nommé
gt. - Le widget demande au serveur GeeTest un défi tout neuf. Le défi comprend une valeur
challengeet les images ou positions de tuiles nécessaires au puzzle. - Lorsque le visiteur termine la tâche, le widget renvoie le résultat au site. Le backend du site vérifie ensuite ce résultat auprès du fournisseur de captcha avant d'accepter le formulaire.
La troisième étape est déterminante. Une valeur d'apparence plausible ne suffit pas, car le serveur vérifie un résultat lié à un seul défi et qui expire. C'est pourquoi une valeur copiée d'une autre session échoue, et pourquoi rejouer un ancien résultat ne fonctionne pas.
Pourquoi GeeTest est plus difficile qu'un widget à token
Avec PopularCaptcha, la page a besoin d'une seule chaîne de token, et une seule requête renvoie cette chaîne. GeeTest diffère sur trois points :
- La sortie est le résultat d'une tâche, et non une chaîne unique. Le site attend plusieurs valeurs qui vont ensemble, et elles doivent toutes provenir du même défi.
- Le défi est visuel et positionnel. Un solveur doit trouver où s'insère une pièce de puzzle ou quelles icônes correspondent, puis produire un mouvement qui ressemble à celui d'une personne.
- Les vérifications portent aussi sur le comportement. La vitesse, le trajet et le timing peuvent être inspectés. Une position correcte obtenue par un mouvement robotique peut encore être rejetée.
C'est pourquoi la résolution GeeTest est une tâche en plusieurs étapes : récupérer le défi, localiser les cibles dans l'image, générer un mouvement, le soumettre et lire le verdict. Chaque étape peut échouer, et le défi expire si vous attendez trop longtemps entre deux étapes.
Approches générales
Les personnes qui automatisent les pages GeeTest utilisent en général l'une de trois approches. Aucune n'est un raccourci, et chacune a un coût :
- Piloter un vrai navigateur. Playwright ou Selenium charge la page et votre script déplace le curseur. Cela fonctionne au mieux sur un site que vous contrôlez ou sur un environnement de test que vous êtes autorisé à utiliser. Le navigateur est réel, mais le mouvement doit tout de même paraître naturel.
- Correspondance d'images. Votre code télécharge l'arrière-plan du puzzle, trouve le trou par correspondance de modèle (par exemple avec OpenCV) et calcule la distance de glissement. C'est souvent la partie la plus fiable d'une installation faite maison, et elle casse lorsque le fournisseur modifie la mise en page des images.
- Humain dans la boucle ou service de résolution. Une personne ou un service géré résout le défi et renvoie le résultat. Scarnox prévoit de proposer cette option pour GeeTest, mais elle n'est pas encore disponible.
Quel que soit votre choix, gardez un périmètre honnête : automatisez les flux que vous possédez, les environnements de test que vous êtes autorisé à utiliser, ou les données publiques que vous avez le droit de collecter.
Trouver l'identifiant du captcha
Vous n'avez pas besoin de code pour commencer. Ouvrez les outils de développement, rechargez la page et cherchez dans l'onglet Réseau geetest ou gt. La première requête qui charge le widget affiche généralement l'identifiant du captcha. Un petit script peut le relever, ce qui est utile pour repérer lorsqu'une page modifie son widget :
import re
import requests
html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")
Le motif ci-dessus cherche une valeur hexadécimale de 32 caractères à côté de gt. Les fournisseurs modifient leur balisage, considérez donc ce motif comme un point de départ, et vérifiez le résultat sur la page que vous testez.
Où en est le support Scarnox
Soyez clair sur ce point lorsque vous planifiez un projet :
- Disponible aujourd'hui : PopularCaptcha, sans proxy, et avec votre propre proxy.
- Bientôt disponible : GeeTest, reCAPTCHA v2 et v3, Cloudflare Turnstile, AWS WAF et Arkose. Ne construisez pas de flux de production qui dépend d'une résolution GeeTest tant qu'elle n'est pas listée comme disponible.
Si votre projet a besoin de GeeTest dès maintenant, la solution pratique consiste à construire vous-même les étapes navigateur et image pour les pages que vous êtes autorisé à tester, et à garder votre code prêt à basculer vers une API lorsque le support sera livré. En attendant, vous pouvez créer un compte et démarrer avec un crédit d'essai gratuit, sans carte bancaire. Vous disposez ainsi d'un flux PopularCaptcha fonctionnel pour vos tests et d'un emplacement où brancher GeeTest plus tard. Pour les tarifs actuels, consultez les tarifs actuels.
Usages légitimes
- Tester votre propre flux de connexion ou de paiement, lorsqu'un captcha bloque vos tests de régression automatisés.
- Vérifier l'accessibilité, en confirmant qu'un visiteur qui ne peut pas résoudre un puzzle visuel dispose d'une autre voie pour terminer un formulaire.
- Surveiller un site que vous avez le droit de suivre, par exemple vérifier qu'un widget se charge toujours après un déploiement.
N'utilisez pas l'automatisation de captchas pour créer de faux comptes, attaquer un formulaire de connexion ou acheter des stocks limités. Ces usages enfreignent les règles de la plupart des sites et ne sont pas pris en charge par Scarnox.