Latenode

Paramètres de lancement de Chrome dans Puppeteer : optimisation des performances et de la sécurité

Découvrez comment optimiser les performances et la sécurité de Chrome avec des paramètres de lancement dans Puppeteer pour automatiser efficacement vos tâches.

9 min de lecture
Configuration des paramètres de lancement Chrome dans Puppeteer

Puppeteer vous permet de personnaliser le comportement de Chrome à l’aide de paramètres de lancement, ce qui peut améliorer la vitesse, réduire l’utilisation des ressources et renforcer la sécurité. Voici un résumé rapide de ce que vous pouvez faire :

  • Améliorer les performances : désactivez les fonctionnalités inutiles telles que l’accélération GPU ou les extensions afin d’accélérer l’exécution et de réduire l’utilisation de la mémoire.
  • Renforcer la sécurité : ajustez les paramètres de sandbox ou contrôlez les fonctionnalités de sécurité web afin de protéger les tâches d’automatisation.
  • Optimiser la mémoire : utilisez des flags pour gérer les opérations gourmandes en mémoire ou éviter les plantages dans les environnements disposant de peu de mémoire.
  • Personnaliser le réseau et la confidentialité : utilisez des proxys et gérez les requêtes cross-origin pour davantage de confidentialité et de contrôle.

Aperçu rapide des paramètres clés :

  • Performances : --disable-gpu, --disable-software-rasterizer
  • Mémoire : --disable-dev-shm-usage, --user-data-dir
  • Sécurité : --no-sandbox, --disable-web-security
  • Réseau : --proxy-server, --proxy-bypass-list

En ajustant ces paramètres, vous pouvez adapter Puppeteer à vos besoins d’automatisation spécifiques, que vous cherchiez à optimiser la vitesse, la mémoire ou la sécurité.

Tutoriel Puppeteer n°4 | Lancer le navigateur avec des options

Paramètres de lancement de Chrome axés sur les performances

Les paramètres de lancement de Chrome peuvent améliorer les performances de Puppeteer en réduisant l’utilisation des ressources et en accélérant l’exécution. Voici quelques-uns des réglages les plus efficaces.

Accélérer le temps de lancement du navigateur

Un démarrage rapide du navigateur est essentiel pour les tâches d’automatisation, en particulier lors de l’exécution dans des conteneurs Docker. Deux paramètres peuvent aider à réduire le temps de lancement :

  • --no-sandbox : désactive la fonctionnalité de sécurité sandbox de Chrome.
  • --disable-setuid-sandbox : supprime les restrictions de la sandbox setuid sous Linux.

Ces options conviennent particulièrement aux environnements Docker sécurisés.

const browser = await puppeteer.launch({
  args: ['--no-sandbox', '--disable-setuid-sandbox']
});

Réduire au minimum la consommation de mémoire

Réduire l’utilisation de la mémoire est essentiel lorsque vous gérez plusieurs instances de navigateur ou des opérations gourmandes en mémoire. Les flags suivants peuvent diminuer les besoins mémoire de Chrome :

ParamètreObjectifEffet
--disable-extensionsEmpêche le chargement des extensions du navigateurRéduit l’utilisation initiale de la mémoire
--disable-pluginsDésactive les plugins du navigateurDiminue la consommation des ressources
--disable-dev-shm-usageÉvite les problèmes de mémoire partagéeAméliore la stabilité sur les systèmes disposant de peu de mémoire

Vous pouvez appliquer ces flags avec :

const browser = await puppeteer.launch({
  args: [
    '--disable-extensions',
    '--disable-plugins',
    '--disable-dev-shm-usage'
  ]
});

Paramètres GPU pour un meilleur rendu

L’ajustement des paramètres GPU peut améliorer les performances de rendu, notamment dans les environnements headless ou sur les systèmes sans matériel graphique dédié :

  • --disable-gpu : désactive l’accélération matérielle GPU, utile lorsqu’elle est inutile ou pose problème.
  • --disable-software-rasterizer : bloque le rendu logiciel, qui peut consommer des ressources importantes.

Pour utiliser ces paramètres, ajoutez-les comme suit :

const browser = await puppeteer.launch({
  args: [
    '--disable-gpu',
    '--disable-software-rasterizer'
  ]
});

Ces paramètres liés au GPU sont particulièrement utiles dans les environnements cloud ou conteneurisés, où l’accès au GPU est limité ou non pertinent. Testez différentes configurations afin de trouver le réglage le plus adapté à votre cas d’usage. Ces optimisations de performances fonctionnent bien avec les paramètres de sécurité abordés dans la section suivante.

Paramètres de sécurité de Chrome dans Puppeteer

Configurer les paramètres de sécurité de Chrome dans Puppeteer implique de trouver le bon équilibre entre fonctionnalité et protection. Si les optimisations de performances peuvent accroître l’efficacité, des paramètres de lancement sécurisés sont indispensables pour protéger votre configuration d’automatisation.

Utiliser --disable-web-security

Le flag --disable-web-security autorise les requêtes cross-origin, mais il comporte des risques sérieux. Ce paramètre ne doit être utilisé que dans des environnements strictement contrôlés.

const browser = await puppeteer.launch({
  args: ['--disable-web-security']
});

Au lieu de vous appuyer sur ce flag, voici des alternatives plus sûres :

ApprocheDescriptionCas d’usage idéal
En-têtes CORSConfigure des en-têtes cross-origin appropriésEnvironnements de production
Serveur proxyAchemine les requêtes via un proxyTests et développement
Interception des requêtesModifie les requêtes par programmationTâches d’automatisation complexes

Voyons maintenant comment les proxys peuvent renforcer la confidentialité.

Configurer des proxys pour la confidentialité

L’utilisation d’un serveur proxy est une autre façon de protéger les données sensibles. Avec Puppeteer, vous pouvez acheminer le trafic via un serveur proxy à l’aide de l’argument --proxy-server.

const browser = await puppeteer.launch({
  args: ['--proxy-server=proxy.example.com:8080']
});

Pour les proxys nécessitant une authentification, vous pouvez ajouter des identifiants au niveau de la page :

const page = await browser.newPage();
await page.authenticate({
  username: 'proxyuser',
  password: 'proxypass'
});

Paramètres de sandbox pour Chrome

La mise en sandbox est essentielle pour l’isolation des processus et la sécurité globale. Bien que désactiver la sandbox avec --no-sandbox soit une option, cette approche doit être utilisée avec prudence.

const browser = await puppeteer.launch({
  args: [
    '--no-sandbox',
    '--disable-setuid-sandbox'
  ]
});

« L’exécution sans sandbox est fortement déconseillée. Envisagez plutôt de configurer une sandbox. » [2]

Selon votre environnement, voici comment gérer les paramètres de sandbox :

EnvironnementConfiguration recommandéeConsidérations de sécurité
DockerUtilisez --no-sandbox avec l’isolation des conteneursRisque modéré, atténué par la configuration du conteneur
Services cloudConfigurez des chemins de sandbox personnalisésÉquilibre entre sécurité et compatibilité
Développement localGardez la sandbox activéeGarantit une sécurité maximale

Les paramètres de sandbox jouent un rôle majeur dans la détermination du niveau de sécurité de votre automatisation. Dans la plupart des cas, conserver la configuration de sandbox par défaut est le choix le plus sûr.

sbb-itb-23997f1

Paramètres de performances avancés

En s’appuyant sur les optimisations de performances précédentes, ces paramètres avancés affinent l’utilisation des ressources et aident à éviter les problèmes de mémoire.

Paramètres de mémoire JavaScript

Vous pouvez contrôler le moteur JavaScript de Chrome à l’aide du paramètre --js-flags :

const browser = await puppeteer.launch({
  args: [
    '--js-flags=--max-old-space-size=2048 --expose-gc'
  ]
});

Ici, 2 048 Mo sont alloués aux opérations JavaScript et la collecte manuelle des déchets est activée.

Éviter les erreurs de mémoire

Pour réduire les plantages liés à la mémoire dans les environnements conteneurisés, utilisez le flag --disable-features=IsolateOrigins :

const browser = await puppeteer.launch({
  args: [
    '--disable-features=IsolateOrigins'
  ]
});
Stratégie d’optimisationDescriptionImpact
Bloquer les ressources inutilesFiltre les téléchargements supplémentaires afin de réduire l’utilisation de la mémoireChargement des pages plus rapide
Activer la mise en cache des ressourcesRéutilise les données en cache pour éviter les téléchargements redondantsStabilité améliorée

Configuration de la fenêtre du navigateur

import { KnownDevices } from 'puppeteer';
const iPhone = KnownDevices['iPhone 15 Pro'];

const browser = await puppeteer.launch({
  args: ['--window-size=1200,800']
});
const page = await browser.newPage();
await page.emulate(iPhone);
ParamètreObjectifBonne pratique
Taille de la fenêtreDéfinit les dimensions du navigateurCorrespondre à la fenêtre d’affichage cible
Émulation d’appareilSimule des appareils spécifiquesConfigurer avant la navigation
Démarrage maximiséOuvre le navigateur en plein écranÀ utiliser pour l’automatisation sur ordinateur

Pour maintenir de bonnes performances tout en limitant l’utilisation de la mémoire :

  • Utilisez userDataDir pour mettre les ressources en cache
  • Compressez les charges utiles HTTP
  • Optimisez les images et supprimez les ressources inutilisées
  • Bloquez les traceurs et les publicités

Ces paramètres fonctionnent avec les ajustements précédents afin d’offrir de solides performances tout en maintenant la sécurité.

Utiliser les paramètres Chrome dans Latenode

Configurez les paramètres de lancement de Chrome dans Latenode afin d’améliorer à la fois les performances et la sécurité.

Configuration de Puppeteer dans Latenode

Configurez Puppeteer dans Latenode avec des paramètres de lancement adaptés :

const browser = await puppeteer.launch({
  args: [
    '--disable-gpu',
    '--disable-dev-shm-usage',
    '--no-sandbox',
    '--disable-setuid-sandbox'
  ],
  headless: true
});

Ces paramètres sont spécifiquement optimisés pour l’environnement conteneurisé de Latenode.

Configuration des paramètres Chrome

Latenode prend en charge une variété de paramètres de lancement Chrome, organisés en catégories pour différents cas d’usage :

Catégorie de paramètresArguments courantsObjectif
Performances--disable-gpu, --disable-software-rasterizerPour les tâches gourmandes en ressources
Sécurité--no-sandbox, --disable-web-securityIdéal pour les configurations conteneurisées
Réseau--proxy-server, --proxy-bypass-listGarantit la confidentialité et le contrôle des accès
Mémoire--disable-dev-shm-usageGère l’automatisation à grand volume

Avec ces configurations, Latenode fait évoluer efficacement les tâches d’automatisation de navigateur.

Automatisation de navigateur à grande échelle

Configurer correctement les paramètres est essentiel pour faire évoluer l’automatisation de navigateur dans Latenode. La plateforme est conçue pour gérer l’exécution parallèle tout en optimisant l’utilisation des ressources :

const browser = await puppeteer.launch({
  args: [
    '--disable-gpu',
    '--disable-software-rasterizer',
    '--disable-dev-shm-usage',
    '--user-data-dir=/path/to/profile',
    '--proxy-server=http://proxy.example.com:8080'
  ]
});

« L’utilisation des arguments et flags Puppeteer peut modifier considérablement le comportement de vos sessions de navigateur headless afin de répondre à des exigences spécifiques. » - hayageek.com [1]

L’architecture de Latenode prend en charge jusqu’à 1,5 million d’exécutions de workflows par mois dans ses offres Enterprise, ce qui en fait une option fiable pour l’automatisation à grande échelle.

Pour garantir des performances fluides dans les cas d’usage à grand volume :

  • Ajustez les limites de mémoire selon la complexité du workflow
  • Utilisez user-data-dir pour mettre en cache les ressources fréquemment consultées
  • Effectuez une rotation des proxys pour gérer les modèles d’accès distribués

Ces configurations s’intègrent parfaitement aux fonctionnalités de Latenode et assurent une automatisation fiable et évolutive, avec une sécurité renforcée et des performances efficaces.

Résumé

Les paramètres de lancement de Chrome jouent un rôle crucial dans les performances et la sécurité de Puppeteer. Comprendre ces paramètres peut vous aider à affiner votre workflow d’automatisation. Le tableau de référence rapide ci-dessous présente les principaux flags et leurs objectifs.

Référence des principaux paramètres

Les flags Chrome les plus importants sont regroupés selon leur utilisation prévue :

CatégorieParamètresObjectif
Performances--disable-gpu, --disable-software-rasterizerAméliorer la vitesse et l’utilisation des ressources
Mémoire--disable-dev-shm-usage, --user-data-dirOptimiser la mémoire et la mise en cache
Sécurité--no-sandbox, --disable-web-securityAjuster les paramètres de sécurité
Réseau--proxy-server, --proxy-bypass-listGérer l’accès et la confidentialité
const browser = await puppeteer.launch({
  args: [
    '--disable-gpu',
    '--disable-dev-shm-usage',
    '--user-data-dir=/path/to/profile',
    '--remote-debugging-port=9222'
  ]
});

Prochaines étapes

Vous pouvez améliorer votre workflow d’automatisation en suivant ces étapes :

  • Définissez vos besoins : identifiez les exigences de performances et de sécurité de votre projet.
  • Testez les paramètres : évaluez différentes combinaisons de flags dans votre environnement de développement afin de trouver la meilleure configuration.
  • Suivez les performances : surveillez l’utilisation de la mémoire et le comportement du navigateur pour mesurer l’impact de vos modifications.
  • Restez à jour : examinez et actualisez régulièrement vos paramètres afin de les aligner sur les dernières fonctionnalités de Chromium [3].

Intégrez ces ajustements dans des outils tels que Latenode afin de maintenir un processus d’automatisation de navigateur sécurisé et efficace.

References

FAQ

Frequently Asked Questions

Les indicateurs de performance courants incluent --disable-gpu, --disable-software-rasterizer, --disable-extensions, --disable-plugins et --disable-dev-shm-usage afin de réduire l'utilisation de la mémoire et d'accélérer le démarrage, notamment dans Docker ou les environnements de navigateur headless.

Cela vous a aidé ? Partagez-le →

Écrit par

Vasiliy Datsenko

Responsable du support client

Vasiliy Datsenko est responsable du support client chez Latenode et un rédacteur en automatisation axé sur les produits. Son travail relie les conversations clients, la recherche sur l'automatisation des flux de travail, les cas d'utilisation de l'IA et la formation pratique sur les produits pour les équipes cherchant à automatiser des processus métier réels.

Profil de l'auteur →

Vérifié par

Oleg Zankov

PDG de Latenode, expert en no-code

Avec une philosophie ancrée dans l'innovation, la résolution de problèmes et l'expérience utilisateur, je me consacre à donner aux équipes les moyens de créer des intégrations sur mesure et d'automatiser les workflows avec facilité et efficacité. Fort d'une riche expérience en développement commercial, entrepreneurship technologique et développement logiciel, j'ai reconnu le besoin d'une solution d'intégration plus accessible, évolutive et adaptable. Ainsi est né Latenode.com. Grâce à notre plateforme, les entreprises peuvent exploiter la puissance de la technologie sans nécessiter de compétences approfondies en codage. Passionné par la création d'un avenir où la technologie nous sert, et non l'inverse, ma mission est de simplifier les processus complexes. Je crois en la démocratisation de la technologie et en dotant les équipes des outils nécessaires pour innover, croître et réussir dans un monde de plus en plus numérique.

Profil de l'auteur →

Continuer la lecture