Une plateforme low-code alliant la simplicité du no-code à la puissance du full-code 🚀
Commencez gratuitement
Automatisation invisible : utiliser puppeteer-extra-plugin-stealth pour contourner la protection contre les robots
26 mars 2025
7
min lire

Automatisation invisible : utiliser puppeteer-extra-plugin-stealth pour contourner la protection contre les robots

Georges Miloradovitch
Chercheur, rédacteur et intervieweur de cas d'utilisation
Table des matières

Vous souhaitez contourner les systèmes de détection de robots tout en automatisant Chrome? Le 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 :

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await browser.close();
})();

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 ...

Marionnettiste

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 :

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://nowsecure.nl/');
  await browser.close();
})();

Important: Assurez-vous d'importer Puppeteer depuis 'puppeteer-extra' au lieu de 'puppeteer' pour accéder aux fonctionnalités ajoutées.

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 :

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await page.waitForTimeout(5000);
  await page.screenshot({ path: 'stealth-test.png' });
  await browser.close();
})();

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

Le 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 HeadlessChrome agent utilisateur avec un agent plus naturel
  • Cadre réaliste Accept-Language têtes
  • Réglage de la prise en charge des codecs pour la lecture multimédia
  • Modification navigator.vendor pour 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 Objectif
Émulation de processeur Limite les processeurs logiques à 4 Imite le matériel utilisateur typique
Émulation de plugin Se moque navigator.mimeTypes et plugins Imite les fonctionnalités standard de Chrome
Propriétés de la fenêtre Ajoute outerWidth et les outerHeight 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.webdriver propriété
  • Ajoute chrome.app et les chrome.csi objets présents dans les navigateurs Chrome classiques
  • Cache le sourceurl attribut dans les scripts Puppeteer
  • Ajuste permissions proprié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. Cependant, des systèmes anti-bots avancés, comme ceux utilisés par Cloudflare, peut encore détecter l'automatisation dans certains cas.

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 :

const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin({
  webglVendor: "Google Inc. (Intel)",
  webglRenderer: "Intel Iris OpenGL Engine",
  navigator: {
    platform: "MacIntel",
    languages: ["en-US", "en"]
  }
})

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égories Options Objectif
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 :

const randomDelay = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

await page.waitForTimeout(randomDelay(1000, 3000));

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 :

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=http://proxy.example.com:8080`,
    '--disable-features=IsolateOrigins,site-per-process'
  ]
});

« 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

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 :

async function emulateHumanBehavior(page) {
  // Random scrolling behavior
  await page.evaluate(() => {
    window.scrollBy({
      top: Math.random() * 500,
      behavior: 'smooth'
    });
  });

  // Random pauses between actions
  await page.waitForTimeout(1500 + Math.random() * 2500);
}
Modèle de comportement Implantation Objectif
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 :

const browserContext = await browser.createIncognitoBrowserContext({
  userDataDir: './sessions/user1',
  persistentContext: true
});

Vous pouvez également gérer efficacement les cookies :

// Remove specific cookies but keep session-critical data
await page.deleteCookie({
  name: '_ga',
  domain: '.example.com'
});

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é :
    const maxRetries = 3;
    const baseDelay = 2000;
    
    async function fetchWithRetry(page, url) {
      for (let i = 0; i < maxRetries; i++) {
        try {
          return await page.goto(url);
        } catch (error) {
          await page.waitForTimeout(baseDelay * Math.pow(2, 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

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 Permet d'automatiser la navigation sans être signalé. Cela fonctionne en masquant les marqueurs d'automatisation grâce à des modules d'évasion intégrés.

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

Blogs connexes

Cas d'utilisation

Soutenu par