Comment contourner un captcha pour l'automatisation et les tests légitimes
Contourner un captcha de manière légitime signifie faire passer votre travail automatisé au-delà d'un défi sans enfreindre les règles du site ni attaquer ses utilisateurs. Concrètement, cela couvre quatre cas : automatiser un flux de travail qui vous appartient, tester votre propre site, construire des outils accessibles et collecter des données publiques à un rythme responsable. La voie honnête la plus rapide consiste généralement à éviter de déclencher le captcha. Lorsque vous ne pouvez pas l'éviter, une API de solveur comme Scarnox peut renvoyer le token attendu par la page.
Ce guide présente les approches dans l'ordre où vous devez les essayer, et indique les limites à ne pas franchir.
Commencez par comprendre pourquoi le captcha est apparu
Les captchas sont un signal. Le site a jugé qu'une requête paraissait automatisée ou risquée. Avant de tenter de franchir le défi, identifiez la cause :
- Le rythme des requêtes. Beaucoup de captchas n'apparaissent qu'après une rafale de requêtes venant d'une même adresse.
- L'absence d'état de session. Un visiteur qui arrive sans cookies, sans historique et sans connexion ressemble à un scraper.
- Les signaux du navigateur. Les navigateurs headless et les réglages d'automatisation par défaut sont souvent signalés. Le guide de détection des navigateurs headless explique les plus courants.
- La réputation du réseau. Les adresses de datacenter sont plus scrutées que les connexions domestiques.
Corriger la cause supprime souvent le captcha complètement, ce qui vaut mieux que de le résoudre à chaque requête.
Essayez les approches qui évitent le défi
- Utilisez une API officielle si elle existe. Beaucoup de sites publient leurs données via une API avec ses propres clés et ses propres limites. Cette voie est plus rapide, plus stable et clairement autorisée.
- Ralentissez et répartissez les requêtes. Ajoutez des délais entre les requêtes, limitez la concurrence et faites marche arrière dès que vous recevez un avertissement. Un rythme régulier de quelques requêtes par minute ne ressemble pas du tout à une rafale de centaines de requêtes pour un site.
- Gardez les sessions. Réutilisez les cookies et un profil de navigateur cohérent pendant toute une session, plutôt que de repartir de zéro à chaque page. Le guide sur le fingerprinting du navigateur explique pourquoi c'est important.
- Consultez le robots.txt et les conditions d'utilisation avant de commencer, et non après un blocage. Respectez ce que le site demande.
Utilisez des clés de test et des environnements de test
Si le captcha bloque votre environnement de staging, ne dirigez pas vos tests vers la production pour le contourner. La plupart des fournisseurs de captcha, dont Google et Cloudflare, publient des clés de test pour le développement. Ces clés produisent un token valide sans défi réel, et ce sont les bons outils pour les tests automatisés. Vous pouvez aussi demander à votre équipe de désactiver le captcha sur le serveur de staging. Le guide sur les captchas dans les tests automatisés détaille cette configuration.
Résolvez le captcha via une API lorsqu'il se trouve devant un travail légitime
Certains captchas apparaîtront malgré un bon rythme sur un travail légitime. Un job de supervision qui vérifie le portail de votre fournisseur en est un exemple. Dans ce cas, une API de solveur est l'outil approprié.
Scarnox est une API de résolution de captchas. Aujourd'hui, le seul type de tâche disponible est PopularCaptcha, sans proxy. Votre code envoie la sitekey et l'URL de la page, et reçoit un token à soumettre avec le formulaire :
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
Le token expire au bout d'environ deux minutes, soumettez-le donc immédiatement. Le guide Python pour résoudre un captcha contient l'exemple complet. Les autres types de captcha, dont reCAPTCHA, Cloudflare Turnstile et Arkose, sont bientôt disponibles. Tant qu'ils ne sont pas lancés, ne supposez pas qu'un solveur les gère.
L'accessibilité est aussi une raison légitime
Les captchas sont une barrière pour les personnes qui utilisent un lecteur d'écran, changent d'appareil ou ont une déficience cognitive ou visuelle. Si vous construisez des outils d'accessibilité, ou si vous agissez pour des utilisateurs qui ne peuvent pas accomplir un défi, la première étape est de demander au propriétaire du site une alternative accessible. Beaucoup de sites en proposent une. Automatiser un captcha ne remplace pas cette discussion.
Ce qui n'est pas légitime
Certains usages de la résolution de captchas sont hors cadre, quelle que soit la raison invoquée. N'utilisez pas de solveurs ni de contournement pour :
- le credential stuffing ou toute tentative de connexion à des comptes qui ne vous appartiennent pas ;
- les inscriptions en masse, les faux avis ou les faux comptes ;
- l'achat de billets, de stocks ou de biens limités avant les autres clients ;
- l'attaque de formulaires de connexion, de flux de réinitialisation de mot de passe ou de limites de débit sur le service de quelqu'un d'autre.
Ces usages nuisent à de vraies personnes, enfreignent les conditions des sites et vous exposent à de sérieux risques juridiques. Scarnox ne les prend pas en charge, et ce guide ne les couvre pas.
Scrapez de manière responsable
Si votre contournement sert à collecter des données publiques, gardez ces points à l'esprit :
- Consultez le robots.txt et les conditions du site. Un site qui interdit le scraping vous a dit ce qu'il attend.
- Fixez une limite de débit raisonnable et faites marche arrière en cas d'erreur. Surcharger un petit site est un vrai préjudice.
- Ne collectez pas de données personnelles dont vous n'avez pas besoin. Les données personnelles sont soumises à des lois comme le RGPD, et les collecter sans précaution crée une responsabilité. Le guide sur la légalité du web scraping explique les principaux points à considérer.
En résumé
Évitez d'abord le captcha en corrigeant la cause. Utilisez des clés de test pour vos tests. Utilisez une API de résolution pour les travaux légitimes qui rencontrent encore un défi, dans les types de tâches disponibles. Restez en dehors des usages listés plus haut, et scrapez à un rythme que le site peut supporter.