Dans cet article, nous avons essayé de répondre à toutes les questions essentielles. Pour commencer à résoudre le problème, il faut d’abord déterminer quel système de protection est utilisé. Pour cela, vous pouvez consulter la liste des captchas et systèmes de protection antibot les plus populaires, qui présente des exemples visuels et des caractéristiques clés permettant d’identifier rapidement avec quoi vous avez affaire.
Si vous constatez que votre site utilise ImageToText, l’étape suivante consiste à étudier plus en détail ses propriétés et son fonctionnement. Dans cet article, vous pouvez également consulter le guide d’intégration de ImageToText afin de comprendre pleinement la façon dont il fonctionne sur votre site. Cela vous permettra non seulement de mieux connaître la protection en place, mais aussi de planifier correctement sa maintenance.
Travailler avec CapMonster Cloud via l’API comprend généralement les étapes suivantes :
type - ImageToTextTask
body - le contenu du fichier du captcha encodé en base64. Assurez-vous que la valeur est envoyée sur une seule ligne, sans retours à la ligne ;
capMonsterModule (optionnel) - nom du module, par exemple « yandex ». Une autre méthode pour transmettre le nom du module ainsi qu’une liste de tous les modules disponibles est disponible ici ;
Vous pouvez également définir d’autres paramètres optionnels :
recognizingThreshold - seuil de reconnaissance du captcha avec une valeur possible de 0 à 100 ;
case - prise en compte ou non de la casse lors de la résolution. Valeurs possibles : true, false ;
numeric - 1 — si le captcha ne contient que des chiffres. Valeurs possibles : 0, 1 ;
math - false — non défini par défaut ;
true — le captcha nécessite l’exécution d’une opération mathématique (par exemple, le captcha 2 + 6 renverra la valeur 8).
Important : pour le module captcha_math, n’utilisez pas le paramètre math: true.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Indiquez votre clé API CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Vous pouvez également vérifier votre solde
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Lancer Playwright et ouvrir la page contenant le formulaire
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Récupérer l’URL du captcha depuis la page (exemple via le sélecteur <img>)
// 2. Récupérer l’URL du captcha depuis la page (exemple via le sélecteur <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Télécharger l’image et la convertir en Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Créer une requête pour résoudre ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // ou un autre module
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Obtenir la solution du captcha
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Insérer la solution dans le champ du formulaire et envoyer
await page.fill("#captcha-input", result.solution.text); // Remplacez par votre sélecteur
await page.click("#submit-button"); // Remplacez par le sélecteur de votre bouton
await page.waitForLoadState("networkidle");
console.log("Formulaire envoyé avec la solution du captcha");
// 7. Fermer le navigateur
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Étape 1. Choisir l’approche
Vous devez d’abord décider comment vous allez utiliser le captcha :
Option 1 — Fournisseur tiers
Adapté si une mise en œuvre rapide et une maintenance minimale sont importantes.
Avantages :
Inconvénients :
Option 2 — CAPTCHA textuel personnalisé
Adapté si vous avez besoin d’un contrôle total et d’une intégration sur mesure.
Avantages :
Inconvénients :
Étape 2. Implémenter la génération du captcha
Pour un fournisseur
Pour un captcha personnalisé
Étape 3. Afficher le captcha à l’utilisateur
Important : chaque chargement doit générer un nouveau code.
Étape 4. Transmettre les données au serveur
Lors de l’envoi du formulaire, transmettez :
Pour un captcha personnalisé, le code ne doit pas être stocké côté client — uniquement côté serveur.
Étape 5. Vérifier le captcha côté serveur
Fournisseur
Captcha personnalisé
Étape 6. Prendre une décision
Étape 7. Renforcer la protection (recommandé)
Même pour un captcha textuel, il est recommandé d’ajouter :
Assurez-vous que :
Si vous héritez d’un site avec un captcha ou un autre système de protection déjà installé et que vous n’avez pas accès au code — aucun problème ! Il est assez facile de déterminer quelle technologie est utilisée. Pour vérifier le bon fonctionnement, vous pouvez utiliser le service de reconnaissance CapMonster Cloud dans un environnement de test isolé afin de vous assurer que la logique de traitement des jetons et de validation fonctionne correctement.
Dans le cas d’un captcha basé sur des images, il suffit d’identifier le système, d’étudier son comportement et de s’assurer que la protection fonctionne correctement. Dans cet article, nous avons montré comment identifier un captcha d’image (ComplexImage) et comment le connecter ou le reconfigurer afin de maintenir et de contrôler la protection en toute confiance.