Il existe deux manières principales d'automatiser la résolution de CAPTCHA : les extensions de navigateur qui interceptent et résolvent les CAPTCHA en temps réel, et les services basés sur des API dans lesquels vous soumettez des données CAPTCHA par programmation. Chacun présente des compromis en termes de vitesse, d’évolutivité et de contrôle.
Comparaison rapide
| Caractéristique | Extension du navigateur | Solveur basé sur API |
|---|---|---|
| Configuration | Installer l'extension, ajouter la clé API | Intégrer dans le code avec les appels HTTP |
| Navigateur requis | Oui | Non (sauf si vous injectez des jetons) |
| Évolutivité | Faible : un navigateur par instance | Élevé : requêtes parallèles illimitées |
| Vitesse | Rapide (détection automatique + résolution) | Dépend du type de CAPTCHA (5 à 30 s) |
| Contrôle | Limité | Contrôle programmatique complet |
| Support sans tête | Limité | Plein |
| Utilisation côté serveur | Non | Oui |
| Coût | Même prix par résolution | Même prix par résolution |
| Langues | Navigateur uniquement (JavaScript) | N'importe quelle langue |
Comment fonctionnent les extensions de navigateur
Une extension de navigateur surveille le chargement des pages pour les widgets CAPTCHA connus (reCAPTCHA, Turnstile, image CAPTCHA). Une fois détecté, il extrait automatiquement les paramètres, les soumet à l'API de résolution et réinjecte le jeton dans la page.
Avantages :
- Configuration sans code : installer et configurer
- Détection et injection automatique de CAPTCHA
- Résout les CAPTCHA exactement comme un utilisateur humain
- Fonctionne avec des sites complexes utilisant beaucoup de JavaScript
Inconvénients :
- Nécessite un navigateur visible ou sans tête
- Une instance de navigateur = une résolution à la fois
- Difficile à exécuter à grande échelle (nécessite de nombreuses instances de navigateur)
- L'extension peut être détectée par les systèmes anti-bot
- Ne peut pas fonctionner sur des serveurs sans navigateur
- Gestion limitée des erreurs et logique de nouvelle tentative
- Les mises à jour des extensions peuvent interrompre la fonctionnalité
Comment fonctionne la résolution basée sur l'API
Vous envoyez des requêtes HTTP à une API de résolution. Soumettez les paramètres CAPTCHA (clé de site, URL de page, données d'image), interrogez le résultat, puis utilisez le jeton dans votre application – aucun navigateur n'est nécessaire.
Avantages :
- Contrôle programmatique complet
- Fonctionne dans n'importe quel langage (Python, Node.js, PHP, Go, etc.)
- S'adapte à des milliers de solutions parallèles
- Fonctionne sur des serveurs, des conteneurs, des fonctions sans serveur
- Gestion personnalisée des erreurs, logique de nouvelle tentative et surveillance
- Fonctionne avec ou sans navigateur
- Aucun risque de détection d’extension
Inconvénients :
- Nécessite de coder l'intégration
- Vous gérez vous-même l’injection de jetons
- Besoin d'extraire les clés de site et les paramètres manuellement
Quand utiliser une extension de navigateur
| Cas d'utilisation | Pourquoi l'extension fonctionne |
|---|---|
| Navigation manuelle avec CAPTCHA occasionnels | Commodité – aucun code requis |
| Prototypage rapide | Testez avant de créer une intégration API |
| Tâches sur un seul navigateur | Remplissage de formulaire, création de compte (faible volume) |
| Utilisateurs non-développeurs | Aucune programmation requise |
Quand utiliser l'API
| Cas d'utilisation | Pourquoi l'API est meilleure |
|---|---|
| Scraping Web à grande échelle | Résolution parallèle, pas de surcharge du navigateur |
| Automatisation côté serveur | Aucun navigateur disponible |
| Test CI/CD | Environnements sans tête |
| Microservices | Appels HTTP depuis n'importe quel service |
| Gestion multi-type CAPTCHA | Détection et routage de type programmatique |
| Gestion personnalisée de la nouvelle tentative/error | Contrôle total sur la reprise après incident |
| Optimisation des coûts | Suivez l'utilisation, mettez en cache lorsque cela est possible, évitez les résolutions redondantes |
Comparaison d'évolutivité
| Métrique | Rallonge | API |
|---|---|---|
| 1 CAPTCHA | Même vitesse | Même vitesse |
| 10 CAPTCHA simultanés | 10 instances de navigateur nécessaires | 10 requêtes HTTP parallèles |
| 100 CAPTCHA simultanés | Peu pratique | Charge de travail standard |
| Plus de 1 000 CAPTCHA simultanés | Pas réalisable | File d'attente + travailleurs |
| RAM par instance | 200 à 500 Mo (Chrome) | ~10 Mo (client HTTP) |
| CPU par instance | Élevé (rendu du navigateur) | Faible (HTTP uniquement) |
Comparaison de fiabilité
| Facteur | Rallonge | API |
|---|---|---|
| Détection CAPTCHA | Automatique (peut manquer des CAPTCHA personnalisés) | Manuel (vous contrôlez la logique de détection) |
| Gestion des erreurs | Niveau d'extension (limité) | Votre code (contrôle total) |
| Mises à jour | Les mises à jour des extensions peuvent casser des choses | API versionnée, rétrocompatible |
| Le navigateur plante | Perdre la séance | Aucun navigateur ne plante |
| Détection anti-bot | L'empreinte digitale de l'extension peut être détectée | Pas d'empreinte digitale d'extension |
Approche hybride
Pour les sites complexes, combinez les deux : utilisez un navigateur pour la navigation et l'API pour la résolution.
from selenium import webdriver
import requests
import time
driver = webdriver.Chrome()
driver.get("https://example.com/login")
# Detect CAPTCHA
sitekey = driver.find_element("css selector", "[data-sitekey]").get_attribute("data-sitekey")
# Solve via API (not extension)
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": driver.current_url,
"json": 1
}).json()
task_id = submit["request"]
time.sleep(15)
for _ in range(24):
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
token = result["request"]
# Inject token via JavaScript
driver.execute_script(
f'document.getElementById("g-recaptcha-response").value = "{token}";'
)
driver.find_element("css selector", "form").submit()
break
time.sleep(5)
Cela vous donne un rendu au niveau du navigateur pour les sites utilisant beaucoup de JavaScript avec un contrôle au niveau de l'API pour la résolution de CAPTCHA.
FAQ
Le coût par résolution est-il différent entre l'extension et l'API ?
Non. Les deux utilisent la même infrastructure de résolution CaptchaAI. Le coût par CAPTCHA est identique.
Puis-je utiliser une extension dans Chrome sans tête ?
Techniquement oui, mais le support est limité. Headless Chrome peut charger des extensions, mais certains CAPTCHA détectent le mode sans tête. L'approche API est plus fiable pour les environnements sans tête.
Les extensions fonctionnent-elles avec Selenium ou Puppeteer ?
Certains le font. Vous pouvez charger l'extension dans un navigateur géré par Selenium. Mais à ce stade, vous êtes déjà en train d’écrire du code : l’API vous donne plus de contrôle avec moins de frais généraux.
Dois-je commencer par une extension ou une API ?
Si vous explorez ou avez besoin de quelque chose qui fonctionne en 5 minutes, commencez par une extension. Si vous développez l'automatisation de la production, commencez par l'API : vous en aurez éventuellement besoin.
Obtenez votre clé API CaptchaAI
Créez une résolution CAPTCHA évolutive àcaptchaai.com.
Guides associés
- Guide de démarrage rapide CaptchaAI
- Comment résoudre reCAPTCHA v2 à l'aide de l'API
- ChromeDriver non détecté avec CaptchaAI
- Chrome sans tête ou avec tête pour la résolution de CAPTCHA