Dans ce guide, vous apprendrez :
- Ce qu’est un CAPTCHA et s’il est possible de le contourner
- Comment mettre en œuvre la logique de contournement du CAPTCHA Playwright
- Que faire si le CAPTCHA s’affiche toujours.
C’est parti !
Que sont les CAPTCHA et peut-on les contourner ?
Un CAPTCHA, abréviation de « Completely Automated Public Turing tests to tell Computers and Humans Apart » (tests de Turing publics entièrement automatisés pour distinguer les ordinateurs des humains), est un test utilisé pour distinguer les utilisateurs humains des robots automatisés. Il s’agit d’un défi spécialement conçu pour être facile à résoudre pour les humains, mais difficile pour les machines.

Parmi les fournisseurs de CAPTCHA les plus populaires, on trouve Google reCAPTCHA, hCaptcha et BotDetect. Ceux-ci prennent généralement en charge un ou plusieurs des types de CAPTCHA ci-dessous :
- Défis basés sur des images : les utilisateurs doivent identifier des objets spécifiques dans une grille d’images ou identifier des images qui correspondent à une hypothèse donnée.
- Défis basés sur du texte : les utilisateurs doivent taper une séquence de lettres et de chiffres déformés.
- Défis basés sur l’audio : les utilisateurs doivent saisir les mots qu’ils entendent.
- Défis sous forme de puzzle : les utilisateurs doivent résoudre un puzzle simple, par exemple en faisant glisser une pièce à sa place.
Les CAPTCHA peuvent faire partie d’un flux utilisateur particulier, comme la dernière étape de soumission d’un formulaire :

Dans ces cas, le CAPTCHA est toujours affiché et ne peut pas vraiment être contourné par les robots. Vous pouvez intégrer votre logiciel à des bibliothèques de Résolution de CAPTCHA pour les automatiser ou à des services qui font appel à des opérateurs humains pour résoudre ces défis en temps réel. Cependant, les CAPTCHAs codés en dur ne sont pas courants car ils sont ennuyeux et nuisent à l’expérience utilisateur.
Plus couramment, les CAPTCHA sont utilisés dans le cadre de solutions anti-bots plus larges, telles que les WAF (Web Application Firewalls) :

Ces systèmes affichent dynamiquement un CAPTCHA lorsqu’ils soupçonnent que l’utilisateur est un bot. Dans ces cas, les CAPTCHA peuvent être contournés en faisant en sorte que votre bot imite le comportement humain. Il s’agit toutefois d’un jeu du chat et de la souris qui nécessite de mettre à jour en permanence votre script automatisé afin d’éviter les nouvelles mesures de détection des bots.
Une solution plus efficace pour contourner les CAPTCHA consiste à utiliser un outil basé sur l’émulation utilisateur et toujours à jour, tel que le CAPTCHA Solver de Bright Data.
Playwright Bypass CAPTCHA : tutoriel étape par étape
Comme vous venez de l’apprendre, une approche efficace pour éviter les CAPTCHA consiste à faire en sorte que votre script automatisé simule des comportements humains tout en utilisant une empreinte digitale semblable à celle d’un humain. L’un des meilleurs outils à cet effet est Playwright, une bibliothèque d’automatisation de navigateur de premier plan qui figure dans la liste des meilleurs outils de Scraping web de l’année.
Dans cette section du tutoriel, vous verrez comment mettre en œuvre la logique de contournement des CAPTCHA de Playwright. Vous apprendrez comment atteindre cet objectif à l’aide d’un script Node.js en JavaScript. Si vous êtes un développeur Python, vous pouvez consulter notre guide équivalent sur Playwright Stealth.
C’est parti !
Étape n° 1 : initialisez votre projet Node.js
Si vous disposez déjà d’un script Playwright de scraping web ou de test, vous pouvez passer cette étape. Sinon, créez un dossier pour votre projet Playwright CAPTCHA solver et entrez-le dans le terminal :
mkdir playwright_demo
cd playwright_demo
Initialisez un nouveau projet Node.js à l’intérieur à l’aide de la commande npm init ci-dessous :
npm init -y
Ouvrez le dossier du projet dans votre IDE JavaScript préféré et ajoutez un nouveau fichier script.js.

N’oubliez pas ensuite d’ouvrir package.json et de marquer votre projet comme module en ajoutant :
« type » : « module »
Parfait, le dossier de votre projet contient désormais une application Node.js.
Étape n° 2 : installer Playwright Extra
L’une des faiblesses connues de Playwright est qu’il ne prend pas en charge les plugins. La communauté a comblé cette lacune avec Playwright Extra, une bibliothèque qui étend Playwright avec la prise en charge des plugins.
Ajoutez playwright et playwright-extra aux dépendances de votre projet à l’aide de cette commande :
npm i playwright playwright-extra
Cela peut prendre un certain temps, alors soyez patient.
Étape n° 3 : configurez votre script Playwright
Il est temps d’initialiser votre script pour permettre à Playwright de résoudre les défis CAPTCHA. Importez le navigateur que vous souhaitez contrôler depuis playwright-extra en ajoutant cette ligne à script.js:
import { chromium } from "playwright-extra"
Dans ce cas, nous allons automatiser le comportement humain dans Chromium.
Ensuite, initialisez une nouvelle fonction asynchrone où effectuer l’interaction de type humain à l’aide de l’API Playwright :
(async () => {
// configurez le navigateur et lancez-le
const browser = await chromium.launch()
// ouvrez une nouvelle page vierge
const page = await browser.newPage()
// logique d'automatisation du navigateur...
// fermez le navigateur et libérez ses ressources
await browser.close()
})()
Cela lance une nouvelle instance Chromium et ouvre une nouvelle page avant de fermer le navigateur. Parfait, vous êtes prêt à ajouter la logique d’automatisation du navigateur !
Étape n° 4 : implémenter la logique d’automatisation du navigateur
Le site cible sera bot.sannysoft.com, une page web spéciale qui exécute certains tests dans le navigateur afin de déterminer si l’utilisateur est un humain ou un bot. Si vous essayez de visiter cette page sur votre navigateur local, vous devriez voir que tous les tests sont réussis.
Connectez-vous à la page cible à l’aide de la méthode goto():
await page.goto("https://bot.sannysoft.com/")
Ensuite, effectuez une capture d’écran de la page entière pour voir les résultats des tests anti-bot :
await page.screenshot("results.png")
Assemblez le tout et vous obtiendrez le fichier script.js suivant :
import { chromium } from "playwright-extra"
(async () => {
// configurez le navigateur et lancez-le
const browser = await chromium.launch()
// ouvrez une nouvelle page vierge
const page = await browser.newPage()
// accédez à la page cible
await page.goto("https://bot.sannysoft.com/")
// prendre une capture d'écran de la page entière
await page.screenshot({
path: "results.png",
fullPage: true
})
// fermer le navigateur et libérer ses ressources
await browser.close()
})()
Exécutez le code ci-dessus à l’aide de la commande suivante :
node script.js
Le script ouvrira une instance Chromium en mode headless, visitera la page souhaitée, prendra une capture d’écran, puis fermera le navigateur. Si vous ouvrez le fichier results.png qui apparaîtra dans le dossier racine du projet à la fin de l’exécution du script, vous verrez :

Comme vous pouvez le constater, Playwright en mode headless ne passe pas plusieurs tests. C’est pourquoi les WAF affichent des CAPTCHA lors de l’interaction avec les pages dans Playwright. La solution ? Le plugin Stealth !
Étape n° 5 : installer le plugin Playwright Stealth
Playwright Stealth est un plugin pour playwright-extra qui empêche la détection des bots. Ce plugin remplace plusieurs configurations afin que l’instance du navigateur semble naturelle, comme si elle n’était pas contrôlée par Playwright. Plus précisément, ce module modifie les propriétés du navigateur afin d’empêcher toute fuite qui exposerait le navigateur comme étant automatisé.
Le plugin Stealth a été initialement développé pour Puppeteer Extra, mais il fonctionne également pour Playwright Extra. Installez-le via le package npm puppeteer-extra-plugin-stealth à l’aide de cette commande :
npm i puppeteer-extra-plugin-stealth
Ensuite, importez le plugin Stealth dans votre fichier script.js avec cette ligne :
import StealthPlugin from "puppeteer-extra-plugin-stealth"
Étape n° 6 : enregistrer les paramètres Stealth
Pour implémenter la logique de contournement CAPCHA de Playwright, il suffit d’enregistrer le plugin Stealth dans playwright-extra à l’aide de la méthode use():
chromium.use(StealthPlugin())
Le navigateur contrôlé par Playwright apparaîtra désormais comme un navigateur réel utilisé par un utilisateur humain.
Étape n° 7 : répétez le test de détection des bots
Voici à quoi devrait ressembler votre fichier script.js à présent :
import { chromium } from "playwright-extra"
import StealthPlugin from "puppeteer-extra-plugin-stealth"
(async () => {
// enregistrer le plugin Stealth
chromium.use(StealthPlugin())
// configurer le navigateur et le lancer
const browser = await chromium.launch()
// ouvrir une nouvelle page vierge
const page = await browser.newPage()
// naviguer vers la page cible
await page.goto("https://bot.sannysoft.com/")
// prendre une capture d'écran de la page entière
await page.screenshot({
path: "results.png",
fullPage: true
})
// fermer le navigateur et libérer ses ressources
await browser.close()
})()
Relancez le script :
node script.js
Ouvrez à nouveau results.png, et vous verrez que tous les tests de détection de bot ont été réussis :

Et voilà ! L’astuce pour contourner le CAPTCHA de Playwright est terminée !
Que faire si la solution Playwright CAPTCHA Solver ci-dessus ne fonctionne pas ?
Malheureusement, les paramètres du navigateur ne sont pas le seul aspect sur lequel se concentrent les outils anti-bot. La réputation IP est un autre facteur clé, et vous ne pouvez pas simplement changer votre IP de sortie avec une bibliothèque gratuite. Pour cela, vous avez besoin de l’intégration du Proxy Playwright!
Ainsi, les CAPTCHA peuvent toujours apparaître même si vous configurez votre navigateur de manière optimale. Pour les CAPTCHA simples qui ne nécessitent qu’un seul clic, vous pouvez utiliser le plugin puppeteer-extra-plugin-recaptcha. Cependant, l’approche basée sur les plugins du chapitre précédent ne fonctionne que contre les mesures anti-bot de base. Lorsque vous avez affaire à des outils plus complexes comme Cloudflare, vous avez besoin de quelque chose de plus puissant.
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 permet de gérer automatiquement reCAPTCHA, 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 à votre script 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. Consultez également la documentation pour obtenir tous les détails relatifs à l’intégration et à la configuration.
Conclusion
Dans cet article, vous avez appris pourquoi les CAPTCHA représentent un défi pour Playwright et comment les contourner. Grâce à la bibliothèque Playwright Stealth, vous pouvez remplacer la configuration par défaut du navigateur afin de contourner la détection des bots. Cependant, cette approche n’est pas toujours suffisante.
Quelle que soit la sophistication de votre script Playwright, les systèmes avancés de détection des bots peuvent toujours vous identifier comme un bot. La solution consiste à vous 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 API 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 nouvelles tentatives automatiques et la résolution des CAPTCHA pour vous. Oubliez les mesures anti-bots !
Inscrivez-vous dès maintenant et commencez votre essai gratuit dès aujourd’hui.