Automatisation invisible : utiliser puppeteer-extra-plugin-stealth pour contourner la protection contre les robots
Apprenez à utiliser efficacement les techniques d'automatisation furtive pour contourner les systèmes de détection de bots lors de la navigation.

Vous souhaitez contourner les systèmes de détection de robots tout en automatisant Chrome? L'espace puppeteer-extra-plugin-stealth est un outil qui permet de masquer les empreintes digitales d'automatisation, ce qui rend plus difficile pour les sites Web de détecter les robots.
Principaux plats à emporter:
- Ce qu'il fait: Marqueurs d'automatisation des masques (comme
navigator.webdriver) et imite le comportement réel du navigateur. - Comment ça marche: Ajuste les empreintes digitales du navigateur, introduit des modèles de navigation naturels et gère les détails de la session.
- Pourquoi c'est important: Aide à éviter la détection des systèmes anti-bot avancés tels que les défis CAPTCHA et l'empreinte digitale du navigateur.
- Installer: Installer
Puppeteer,puppeteer-extra, et le plugin furtif via NPM or filUtilisez le plugin furtif pour configurer votre navigateur afin qu'il se comporte comme un véritable utilisateur.
Exemple rapide :
<span class="hljs-keyword">import</span> puppeteer <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title class_">StealthPlugin</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>;
puppeteer.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">StealthPlugin</span>());
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://bot.sannysoft.com'</span>);
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Cet outil est idéal pour automatiser les tâches sur les sites web avec une détection stricte des robots. Apprenez à le configurer, à optimiser ses paramètres et à simuler un comportement humain pour rester indétectable.
nodejs Marionnettiste Tutoriel n°7 - Détection de contournement à l'aide de ...
Installation et configuration
Pour commencer, vous devrez installer les packages nécessaires et les configurer afin de minimiser la détection lors de l'automatisation. Cette section décrit le processus d'installation, la configuration initiale et les tests pour garantir le bon fonctionnement de l'application.
Installation du package requis
D'abord, installez Marionnettiste, Marionnettiste supplémentaireainsi que, Plugin furtif. Ouvrez votre terminal et exécutez la commande suivante :
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Si vous utilisez Yarn, utilisez plutôt cette commande :
yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Étapes de configuration initiale
Après l'installation, configurez votre fichier JavaScript pour intégrer le plugin furtif. Voici le code nécessaire :
<span class="hljs-keyword">import</span> puppeteer <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title class_">StealthPlugin</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>;
puppeteer.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">StealthPlugin</span>());
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://nowsecure.nl/'</span>);
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Important: Assurez-vous d'importer Puppeteer depuis 'puppeteer-extra' au lieu de 'puppeteer' pour accéder aux fonctionnalités ajoutées [2].
Une fois la configuration terminée, il est temps de vérifier que tout fonctionne correctement.
Tester votre installation
Exécutez ces tests pour confirmer que votre configuration fonctionne comme prévu :
- Test de fonctionnalité de base: Essayez de naviguer vers un site qui détecte les robots et examinez les résultats.
- Vérification des captures d'écran:Prenez une capture d'écran de la page de test pour confirmer que les fonctionnalités furtives sont correctement appliquées.
- Vérification du score reCAPTCHA:Observez vos scores reCAPTCHA v3 pour déterminer s'il y a des améliorations.
Pour une vérification rapide, utilisez le script suivant :
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://bot.sannysoft.com'</span>);
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-number">5000</span>);
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">screenshot</span>({ <span class="hljs-attr">path</span>: <span class="hljs-string">'stealth-test.png'</span> });
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Ce script effectuera une capture d'écran de la page de test. Vérifiez-la pour voir si votre navigateur se comporte comme un navigateur Chrome classique, sans montrer de signes d'automatisation.
Une fois que votre configuration a réussi ces tests, vous êtes prêt à plonger dans les fonctionnalités avancées du plugin, qui sont abordées dans la section suivante.
Principales fonctionnalités furtives
L'espace puppeteer-extra-plugin-stealth utilise diverses techniques pour rendre la navigation automatisée plus difficile à détecter.
Masquage d'identité du navigateur
Le plugin ajuste les propriétés clés du navigateur pour reproduire un navigateur Chrome classique. Parmi celles-ci :
- Remplacement de la valeur par défaut
HeadlessChromeagent utilisateur avec un agent plus naturel - Cadre réaliste
Accept-Languagetêtes - Réglage de la prise en charge des codecs pour la lecture multimédia
- Modification
navigator.vendorpour correspondre au comportement standard de Chrome
Ces modifications permettent de créer un profil de navigateur qui ressemble à celui d'un utilisateur normal, et non à celui d'un robot. De plus, le plugin utilise des techniques anti-empreintes digitales pour réduire encore davantage le risque de détection.
Méthodes anti-empreintes digitales
| Fonctionnalité | Méthode | Interet |
|---|---|---|
| Émulation de processeur | Limite les processeurs logiques à 4 | Imite le matériel utilisateur typique |
| Émulation de plugin | Simulations de navigator.mimeTypes et de plugins | Imite les fonctionnalités standard de Chrome |
| Propriétés de la fenêtre | Ajoute la largeur extérieure et la hauteur extérieure | Termine la simulation du navigateur |
| Propriétés du vendeur | Ajuste l'identifiant Google de Chrome | Aide à éviter la détection d'automatisation |
Ces méthodes garantissent que le navigateur se comporte d’une manière qui correspond à ce que les sites Web attendent des utilisateurs réels.
Suppression des marqueurs d'automatisation
Pour masquer davantage l'automatisation, le plugin supprime ou modifie les signes révélateurs de l'activité du robot :
- Supprime le
navigator.webdriverpropriété - Ajoute
chrome.appetchrome.csiobjets présents dans les navigateurs Chrome classiques - Cache le
sourceurlattribut dans les scripts Puppeteer - Ajuste
permissionspropriétés pour correspondre au comportement naturel du navigateur
Gestion CAPTCHA
Le plugin contribue également à réduire les problèmes de CAPTCHA en maintenant un comportement de navigation cohérent et en gérant efficacement les sessions. Cela crée un modèle de navigation adapté à l'activité humaine, lui permettant de contourner la plupart des tests de détection de robots sur des plateformes comme sannysoft.com. [2]. Cependant, des systèmes anti-robots avancés, tels que ceux utilisés par Cloudflare, peut encore détecter l'automatisation dans certains cas [1].
sbb-itb-23997f1
Configuration personnalisée
La configuration personnalisée vous permet de modifier les paramètres de furtivité et le comportement du navigateur, vous aidant ainsi à éviter la détection plus efficacement.
Paramètres du module furtif
Puppeteer Stealth vous permet de gérer ses modules d'évasion pour des sites web spécifiques. Vous pouvez activer ou désactiver les modules selon vos besoins :
<span class="hljs-keyword">const</span> <span class="hljs-title class_">StealthPlugin</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>)
<span class="hljs-keyword">const</span> stealth = <span class="hljs-title class_">StealthPlugin</span>({
<span class="hljs-attr">webglVendor</span>: <span class="hljs-string">"Google Inc. (Intel)"</span>,
<span class="hljs-attr">webglRenderer</span>: <span class="hljs-string">"Intel Iris OpenGL Engine"</span>,
<span class="hljs-attr">navigator</span>: {
<span class="hljs-attr">platform</span>: <span class="hljs-string">"MacIntel"</span>,
<span class="hljs-attr">languages</span>: [<span class="hljs-string">"en-US"</span>, <span class="hljs-string">"en"</span>]
}
})
Après avoir configuré les modules furtifs, vous pouvez ajuster le comportement du navigateur pour mieux imiter l'activité réelle des utilisateurs.
Paramètres de comportement du navigateur
Ajustez les paramètres du navigateur pour imiter une véritable expérience de navigation :
| Catégorie | Options | Interet |
|---|---|---|
| Identité de l'utilisateur | Agent utilisateur, plateforme, langages | Crée une identité de navigateur cohérente |
| Profil matériel | Fournisseur WebGL, dimensions de l'écran | Imite les caractéristiques réelles de l'appareil |
| Environnement d'exécution | Objets d'exécution Chrome, propriétés du navigateur | Émule le comportement normal du navigateur |
Introduisez des délais naturels entre les actions pour rendre l’automatisation moins détectable :
<span class="hljs-keyword">const</span> <span class="hljs-title function_">randomDelay</span> = (<span class="hljs-params">min, max</span>) => {
<span class="hljs-keyword">return</span> <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">floor</span>(<span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * (max - min + <span class="hljs-number">1</span>) + min);
}
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-title function_">randomDelay</span>(<span class="hljs-number">1000</span>, <span class="hljs-number">3000</span>));
L’ajout de ces délais permet à votre automatisation de ressembler au comportement humain.
Configuration du proxy
L'utilisation de proxys lors du lancement du navigateur améliore l'anonymat :
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({
<span class="hljs-attr">args</span>: [
<span class="hljs-string">`--proxy-server=http://proxy.example.com:8080`</span>,
<span class="hljs-string">'--disable-features=IsolateOrigins,site-per-process'</span>
]
});
« Il est probablement impossible d'empêcher tous les moyens de détecter le chrome sans tête, mais il devrait être possible de rendre cette tâche si difficile qu'elle devienne prohibitive en termes de coût ou génère trop de faux positifs pour être réalisable. » - TiZho, contributeur GitHub [3]
Effectuez la rotation des proxys et configurez le basculement automatique pour maintenir une connectivité fiable. Ces configurations permettent de minimiser les risques de détection tout en garantissant des performances stables.
Meilleures pratiques furtives
Pour garder les sessions automatisées sous le radar, une planification et une exécution minutieuses sont essentielles.
Modèles de navigation naturels
Simulez une navigation réaliste en ajoutant des délais et des actions aléatoires :
<span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">emulateHumanBehavior</span>(<span class="hljs-params">page</span>) {
<span class="hljs-comment">// Random scrolling behavior</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">evaluate</span>(<span class="hljs-function">() =></span> {
<span class="hljs-variable language_">window</span>.<span class="hljs-title function_">scrollBy</span>({
<span class="hljs-attr">top</span>: <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">500</span>,
<span class="hljs-attr">behavior</span>: <span class="hljs-string">'smooth'</span>
});
});
<span class="hljs-comment">// Random pauses between actions</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-number">1500</span> + <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">2500</span>);
}
| Modèle de comportement | Mise en œuvre | Interet |
|---|---|---|
| Mouvement de la souris | Courbes et vitesses aléatoires | Imite le mouvement naturel du curseur |
| Interaction des pages | Varier les profondeurs de défilement et les pauses | Simule les habitudes de lecture |
| Synchronisation de la navigation | Retards aléatoires (1.5 à 4 secondes) | Évite les schémas de synchronisation prévisibles |
| Vitesse d'entrée | Intervalles de frappe aléatoires | Imite le comportement de frappe humain |
Ces interactions simulées fonctionnent parallèlement aux paramètres de configuration décrits précédemment.
Gestion de session
Une gestion de session appropriée garantit la cohérence des paramètres de furtivité. Utilisez le stockage persistant pour enregistrer les cookies et les données de session :
<span class="hljs-keyword">const</span> browserContext = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">createIncognitoBrowserContext</span>({
<span class="hljs-attr">userDataDir</span>: <span class="hljs-string">'./sessions/user1'</span>,
<span class="hljs-attr">persistentContext</span>: <span class="hljs-literal">true</span>
});
Vous pouvez également gérer efficacement les cookies :
<span class="hljs-comment">// Remove specific cookies but keep session-critical data</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">deleteCookie</span>({
<span class="hljs-attr">name</span>: <span class="hljs-string">'_ga'</span>,
<span class="hljs-attr">domain</span>: <span class="hljs-string">'.example.com'</span>
});
Directives d'utilisation
Combinez les techniques ci-dessus avec ces étapes pratiques pour une meilleure automatisation :
Gestion des taux de demande: Commencez par un délai de 2 secondes entre les requêtes et augmentez-le si des CAPTCHA apparaissent.
Gestion des erreurs : Créez un système de nouvelle tentative pour gérer les requêtes ayant échoué :
<span class="hljs-keyword">const</span> maxRetries = <span class="hljs-number">3</span>; <span class="hljs-keyword">const</span> baseDelay = <span class="hljs-number">2000</span>; <span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">fetchWithRetry</span>(<span class="hljs-params">page, url</span>) { <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < maxRetries; i++) { <span class="hljs-keyword">try</span> { <span class="hljs-keyword">return</span> <span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(url); } <span class="hljs-keyword">catch</span> (error) { <span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(baseDelay * <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">pow</span>(<span class="hljs-number">2</span>, i)); } } }Rotation proxy:Utilisez plusieurs adresses IP pour éviter d'être signalé pour une activité excessive.
« Il est probablement impossible d'empêcher tous les moyens de détecter le chrome sans tête, mais il devrait être possible de rendre cette tâche si difficile qu'elle devienne prohibitive en termes de coût ou génère trop de faux positifs pour être réalisable. » - TiZho, contributeur GitHub [3]
Suivez l'évolution des méthodes de détection anti-bots et ajustez vos paramètres si nécessaire. Ces pratiques complètent les techniques furtives abordées plus haut dans cet article.
Conclusion
Voici un bref résumé des principaux points et conseils d'utilisation Marionnettiste-figurant-plugin-stealth efficacement.
Principaux avantages
Marionnettiste-plugin-extra-furtif Automatise la navigation sans être signalé. Ce système fonctionne en masquant les marqueurs d'automatisation grâce à des modules d'évasion intégrés. [2].
Certaines fonctionnalités clés incluent:
- Suppression de l'identifiant « HeadlessChrome » des en-têtes User-Agent.
- Masquer les marqueurs d'automatisation critiques, comme
navigator.webdriver. - Ajuster les empreintes digitales du navigateur pour imiter le comportement réel de l'utilisateur.
- Permettre des stratégies d'évasion adaptées aux besoins spécifiques du site Web.
Conseils pour la mise en œuvre
Pour affiner votre configuration d’automatisation, gardez ces stratégies à l’esprit :
| Secteur d'intérêt | de Marketing | Résultat |
|---|---|---|
| Modules d'évasion | Activez uniquement les fonctionnalités dont vous avez besoin | Risque de détection réduit, meilleures performances |
| Gestion des erreurs | Utiliser la logique de nouvelle tentative avec un recul exponentiel | Gestion plus fiable des problèmes temporaires |
| Gestion des sessions | Utiliser des contextes de navigateur persistants | Profil furtif cohérent entre les sessions |
Suggestions supplémentaires :
- Commencez avec les paramètres de furtivité par défaut, puis ajustez-les en fonction de vos besoins.
- Restez informé des nouvelles techniques anti-bot et ajustez votre approche en conséquence.
- Combinez des fonctionnalités furtives avec des comportements de navigation naturels pour de meilleurs résultats.
- Concentrez-vous sur une gestion cohérente des sessions pour éviter toute détection.
Bien qu'aucune configuration ne soit infaillible à 100 %, combiner plusieurs tactiques d'évasion complique considérablement la détection. La réussite repose sur une configuration minutieuse et des mises à jour régulières de vos méthodes. Ces conseils, associés aux fonctionnalités du plugin, constituent une base solide pour une automatisation indétectable.
articles similaires
- Comment fonctionne la détection de navigateur sans tête et comment la contourner
- Automatisation des formulaires avec Puppeteer : saisie de texte, remplissage de formulaires et simulation utilisateur
- Gestion des agents utilisateurs dans Puppeteer pour l'émulation de périphériques
- Stratégies pour contourner la protection Cloudflare avec Puppeteer



