Dans ce guide, vous apprendrez :
- Ce que sont les CAPTCHA et si vous pouvez les contourner
- Comment utiliser Puppeteer pour contourner les CAPTCHA grâce à un tutoriel étape par étape
- Que faire si le processus avec Puppeteer ne fonctionne pas
C’est parti !
Que sont les CAPTCHA ? Et peut-on les contourner ?
Un CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart) est un test de réponse qui permet de distinguer les humains des robots automatisés. Pour atteindre leur objectif, les CAPTCHAs sont conçus pour être facilement résolus par les humains, mais difficiles pour les logiciels.
Parmi les fournisseurs de CAPTCHA les plus populaires, on trouve Google reCAPTCHA, hCaptcha et BotDetect. Les types de CAPTCHA les plus courants sont les suivants :
- Basés sur du texte : dans ces défis, les utilisateurs doivent reconnaître des lettres et des chiffres et les saisir.
- Basés sur des images: ces tests demandent aux utilisateurs d’identifier des objets spécifiques dans une grille d’images en sélectionnant les bonnes images.
- Basés sur l’audio : dans ce type de test, les utilisateurs doivent écrire les lettres qu’ils entendent.
- Défis sous forme de puzzle : ce type de défi demande aux utilisateurs de résoudre un puzzle simple en faisant glisser une pièce à l’emplacement prévu à cet effet.
Les CAPTCHA sont conçus de manière à être difficiles à contourner par les logiciels automatisés et les robots. Vous pouvez donc intégrer à votre logiciel des bibliothèques ou des services de Résolution de CAPTCHA qui s’appuient sur des opérateurs humains pour automatiser ces défis et les résoudre.
Cependant, les CAPTCHA codés en dur ne sont pas courants, car ils ont un impact négatif sur l’expérience utilisateur globale du site web. C’est pourquoi les CAPTCHA sont plus souvent utilisés dans le cadre de solutions anti-bots plus larges, telles que les WAF (Web Application Firewalls) :

Dans ces cas, le système affiche dynamiquement un CAPTCHA lorsqu’il soupçonne qu’un bot effectue une activité sur le site web. Pour contourner ces CAPTCHA, vous devez développer un bot qui imite le comportement humain. Bien que cela soit possible, cela demande beaucoup d’efforts, notamment parce que vous devez mettre à jour fréquemment vos scripts pour rester à la pointe des nouvelles techniques et méthodes de détection des bots.
La bonne nouvelle, c’est qu’il existe une solution plus efficace pour contourner les CAPTCHA : le CAPTCHA Solver de Bright Data ! Cet outil, toujours à jour, résout tous vos problèmes liés au contournement des CAPTCHA sans aucun casse-tête.
Comment contourner les CAPTCHA avec Puppeteer : tutoriel étape par étape
Il est maintenant temps de créer un script automatisé qui imite le comportement humain pour contourner les CAPTCHA.
Pour ce faire, vous pouvez utiliser Puppeteer: une bibliothèque JavaScript qui fournit une API de haut niveau qui contrôle les navigateurs web et peut donc être utilisée pour imiter les comportements humains.
C’est parti !
Étape n° 1 : configuration du projet
Supposons que vous appeliez le dossier principal de votre projet bypass_captcha_puppeteer. Voici la structure que devrait avoir le référentiel :
bypass_captcha_puppeteer/
├── index.js
└── package.json
Vous pouvez créer avec :
mkdir bypass_captcha_puppeteer
Ensuite, entrez dans le dossier du projet et lancez npm init pour initialiser une application Node.js :
cd bypass_captcha_puppeteer
npm init -y
Ensuite, créez un fichier index.js à l’intérieur.
Installez Puppeteer comme suit :
npm install puppeteer
Étape n° 2 : utilisez la notation ESM Javascript
Pour utiliser la notation ECMAScript Modules dans Javascript, le fichier package.json doit comporter l’option « type » : « module ».
Voici à quoi devrait ressembler le fichier package.json:
{
"name": "bypass_captcha_puppeteer",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"puppeteer": "^23.10.4"
}
}
Étape n° 3 : essayez de contourner le CAPTCHA avec Puppeteer
Écrivez le code suivant dans le fichier index.js pour voir si Puppeteer apparaît comme un bot ou non :
import puppeteer from 'puppeteer';
const visitBotAnalyzerPage = async () => {
try {
// initialise le navigateur
const browser = await puppeteer.launch();
// ouvrir une nouvelle page du navigateur
const page = await browser.newPage();
// naviguer vers l'URL cible
const url = 'https://bot.sannysoft.com/';
console.log(`Navigation vers ${url}...`);
await page.goto(url, { waitUntil: 'networkidle2' });
// enregistrer une capture d'écran de la page entière
console.log('Prise d'une capture d'écran de la page entière...');
await page.screenshot({ path: 'anti-bot-analysis.png', fullPage: true });
console.log('Capture d'écran prise');
// fermer le navigateur
await browser.close();
console.log('Navigateur fermé');
} catch (error) {
console.error('Une erreur s'est produite :', error);
}
};
// exécuter le script
visitBotAnalyzerPage();
Voici ce que fait ce code :
- Lance le navigateur: la méthode
puppeteer.launch()démarre une nouvelle instance du navigateur avec une interface utilisateur visible (headless: false). - Ouvre une nouvelle page de navigateur:
browser.newPage()crée une nouvelle page de navigateur vierge où d’autres actions peuvent être effectuées. - Accède à la page cible : la méthode
page.goto()redirige vers la page cible, qui est Intoli.com tests, une page conçue pour déterminer si une requête provient d’un bot ou non. - Enregistre une capture d’écran des résultats : la méthode
page.screenshot()obtient une capture d’écran des résultats et l’enregistre. - Ferme le navigateur et gère les erreurs:
browser.close()ferme le navigateur et intercepte les éventuelles erreurs.
Pour exécuter le code, tapez :
node index.js
Vous pouvez maintenant ouvrir l’image enregistrée. Voici le résultat attendu :

Comme le montre l’image, Puppeteer n’a pas réussi certains tests. Par conséquent, les WAF sont susceptibles d’afficher des CAPTCHA lors de l’interaction avec des pages utilisant Puppeteer.
Pour résoudre ces problèmes, utilisons Puppeteer Stealth!
Étape n° 4 : installer le plugin Stealth
Puppeteer Extra est un wrapper léger autour de Puppeteer qui, entre autres, vous permet d’installer le plugin Stealth qui empêche la détection des bots en remplaçant plusieurs configurations afin que l’instance du navigateur semble naturelle et « humaine ».
Installez ces bibliothèques comme suit :
npm install puppeteer-extra puppeteer-extra-plugin-stealth
Importez Puppeteer depuis puppeteer-extra au lieu de puppeteer:
import puppeteer from 'puppeteer-extra';
Fantastique ! Vous êtes prêt à utiliser le plugin Stealth pour essayer d’éviter les CAPCHA avec Puppeteer.
Étape n° 5 : répétez le test avec le plugin Stealth
Vous devez maintenant implémenter le plugin Stealth avec cette ligne de code :
puppeteer.use(StealthPlugin()).
Le code devient donc :
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
// Ajoutez le plugin Stealth à Puppeteer
puppeteer.use(StealthPlugin());
const visitBotAnalyzerPage = async () => {
try {
// lancez le navigateur avec les paramètres Stealth
const browser = await puppeteer.launch();
console.log('Lancement du navigateur en mode Stealth...');
// ouvrir une nouvelle page
const page = await browser.newPage();
// naviguer vers la page cible
const url = 'https://bot.sannysoft.com/';
console.log(`Navigation vers ${url}...`);
await page.goto(url, { waitUntil: 'networkidle2' });
// enregistrer la capture d'écran de la page entière
console.log('Prise d'une capture d'écran de la page entière...');
await page.screenshot({ path: 'anti-bot-analysis.png', fullPage: true });
console.log(`Capture d'écran prise`);
// fermer le navigateur
await browser.close();
console.log('Navigateur fermé. Script terminé avec succès');
} catch (error) {
console.error('Erreur survenue :', error);
}
};
// exécuter le script
visitBotAnalyzerPage();
Maintenant, lorsque vous exécutez à nouveau le code avec :
node index.js
Le résultat attendu est :

Hourra ! Le script passe désormais les tests de détection des bots, ce qui signifie que vous êtes moins susceptible de recevoir des CAPTCHA avec Puppeteer !
Que faire si la procédure ci-dessus pour contourner les CAPTCHA avec Puppeteer ne fonctionne pas
Malheureusement, Puppeteer Extra n’est pas toujours la solution miracle. En effet, les paramètres du navigateur ne sont pas le seul moyen utilisé par les anti-bots pour bloquer les logiciels automatisés.
Par exemple, l’agent utilisateur est un autre facteur utilisé par les systèmes anti-bots pour bloquer les logiciels automatisés. Pour résoudre ce problème, vous pouvez utiliser la bibliothèque puppeteer-extra-plugin-anonymize-ua qui anonymise l’agent utilisateur.
Cependant, l’approche basée sur les plugins décrite précédemment ne fonctionne que contre les mesures anti-bots de base : lorsque vous avez affaire à des outils plus complexes comme Cloudflare, vous avez besoin de quelque chose de plus puissant.
Alors… Vous recherchez un véritable solveur de CAPTCHA Playwright ? Essayez les solutions de Scraping web de Bright Data!
Celles-ci offrent des capacités de déverrouillage supérieures grâce à une fonctionnalité dédiée à la Résolution de CAPTCHA qui gère automatiquementreCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha, GeeTest CAPTCHA, FunCaptcha, Cloudflare Turnstile, AWS WAF Captcha, KeyCAPTCHA et bien d’autres.
L’intégration du CAPTCHA Solver de Bright Data dans vos scripts est facile, car il fonctionne avec n’importe quel client HTTP ou outil d’automatisation de navigateur.
Découvrez comment utiliser le CAPTCHA Solver de Bright Data et consultez la documentation pour obtenir tous les détails d’intégration et de configuration.
Conclusion
Dans cet article, vous avez appris pourquoi il peut être difficile de contourner les CAPTCHA avec Puppeteer et comment utiliser le plugin Stealth pour remplacer la configuration par défaut du navigateur afin de contourner la détection des bots.
Le problème avec cette approche est qu’elle ne fonctionne que dans des scénarios simples. Les systèmes avancés de détection des bots peuvent toujours vous identifier comme un bot et vous bloquer.
Ainsi, pour contourner les CAPTCHA, la solution réelle consiste à se connecter à votre page cible via une API de déverrouillage qui peut renvoyer de manière transparente le code HTML sans CAPTCHA de n’importe quelle page web. Cette solution existe et s’appelle Web Unlocker. Son objectif est de faire tourner automatiquement l’IP de sortie à chaque requête via l’intégration d’un Proxy, de gérer l’empreinte digitale du navigateur, les réessais automatiques et la résolution des CAPTCHA pour vous.
Inscrivez-vous dès maintenant pour découvrir lequel des produits de scraping de Bright Data correspond le mieux à vos besoins.
Commencez par un essai gratuit !