Latenode

Browserless Chrome : un outil puissant pour l’automatisation des navigateurs

Simplifiez l’automatisation des navigateurs grâce à un service Chrome headless basé dans le cloud pour le web scraping, la génération de PDF et les tests.

10 min de lecture
Illustration de l’automatisation Chrome headless dans le cloud

Browserless Chrome est un service cloud qui simplifie l’automatisation des navigateurs en exécutant Chrome en mode headless pour des tâches telles que le web scraping, la génération de PDF et les tests. Il élimine le besoin de configurer des navigateurs en local et gère automatiquement les plantages du navigateur, l’isolation des sessions et l’optimisation des ressources. Ses principaux avantages incluent :

  • Aucune configuration locale : utilisez Docker ou un déploiement cloud pour démarrer rapidement.
  • Performances rapides : captures d’écran en environ 1 seconde, PDF en environ 2 secondes.
  • Contournement de la détection des bots : surmonte les bloqueurs tels que Cloudflare pour une automatisation fiable.
  • Efficacité des ressources : réduit l’utilisation des proxys et des machines virtuelles jusqu’à 90 %.

Configuration rapide : intégrez des bibliothèques populaires comme Puppeteer, Playwright ou Selenium à l’aide de méthodes de connexion simples. Browserless propose également des API pour le web scraping, le rendu JavaScript et des workflows d’automatisation personnalisés.

Comparaison rapide des fonctionnalités

FonctionnalitéAvantageExemple
Nettoyage des sessionsSupprime automatiquement les sessions inactivesMaintient les ressources optimisées
Prévention de la détection des botsContourne les bloqueurs comme CloudflareFiable pour les tâches de scraping
Traitement multitâcheGère efficacement les requêtes simultanéesPlus de 2 M de sessions traitées chaque semaine
API prêtes à l’emploiSimplifie les tâches d’automatisationExtraction de données JSON, PDF

Browserless Chrome est idéal pour les développeurs et les entreprises qui souhaitent simplifier l’automatisation sans gérer une infrastructure complexe.

Guide de configuration

Comment installer

Pour démarrer avec Browserless Chrome, vous pouvez choisir entre deux options d’installation : une configuration locale avec Docker ou un déploiement cloud. Pour une configuration Docker locale, utilisez la commande suivante :

docker run -p 3000:3000 ghcr.io/browserless/chromium

Cette commande récupère la dernière image et la rend accessible sur le port 3000 [3]. Elle fonctionne parfaitement sous Windows, macOS et Linux.

Configuration initiale

Browserless Chrome inclut plusieurs fonctionnalités intégrées pour simplifier le processus de configuration :

FonctionnalitéParamètre par défautObjectif
Nettoyage des sessions30 secondesSupprime automatiquement les sessions inactives
Vérifications d’étatActivéesGarantit la stabilité du système
File d’attente des requêtesConfigurableGère plusieurs connexions simultanées
Limites de ressourcesAjustablesContrôle l’utilisation de la mémoire et du processeur

Vous pouvez personnaliser l’environnement en définissant ces variables :

MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100

Une fois la configuration terminée, vous pouvez vous connecter à Browserless via la méthode d’intégration de votre choix.

Établir votre première connexion

Selon la bibliothèque utilisée, voici comment établir votre première connexion :

  • Connexion Puppeteer
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Intégration Playwright
const browser = await playwright.firefox.connect(
  `wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
  • Accès à l’API REST
curl -X POST https://chrome.browserless.io/content
  -H 'Content-Type: application/json'
  -H 'Authorization: Basic YOUR-BASE64-TOKEN'
  -d '{ "url": "https://example.com/"}'

Browserless V2 améliore la fiabilité grâce à deux endpoints régionaux : la côte Ouest des États-Unis (production-sfo.browserless.io) et l’Europe (production-lon.browserless.io). Ces endpoints gèrent l’isolation des sessions, les requêtes simultanées et la récupération après les plantages automatiquement. Ils nettoient également les sessions inactives après 30 secondes en lançant une nouvelle instance de navigateur pour chaque nouvelle session [4].

Fonctionnalités principales

Principes du navigateur headless

Browserless Chrome fonctionne sans interface graphique, en mode headless. Il démarre automatiquement de nouvelles instances de navigateur pour les requêtes entrantes, garantissant une utilisation efficace des ressources.

Voici un aperçu rapide de ses principales fonctionnalités :

FonctionnalitéDescriptionAvantage
Isolation des sessionsSessions de navigateur indépendantesRéduit les coûts d’infrastructure
Récupération automatiqueRedémarre après les plantagesMaintient les opérations en cours
Optimisation des ressourcesUtilisation efficace de la mémoire et du processeurAméliore les performances globales

Au-delà de ces éléments essentiels, Browserless est conçu pour gérer facilement plusieurs tâches simultanément.

Traitement multitâche

Avec plus de 2 millions de sessions traitées, Browserless Chrome a généré des millions de captures d’écran, de PDF et de résultats de tests [5]. Son système intelligent de gestion des files d’attente garantit le traitement des requêtes sans surcharger les ressources, tout en maintenant des performances constantes. Cela s’est révélé particulièrement utile pour des entreprises telles que Samsara, qui a remplacé son service de tests interne par Browserless afin de bénéficier d’une meilleure scalabilité.

« Browserless propose une gamme de fonctionnalités conçues pour simplifier et accélérer les tâches d’automatisation des navigateurs web. Grâce à sa robuste API et à sa capacité à gérer des opérations parallèles, Browserless se distingue comme un leader de l’automatisation. » – Elest.io

Browserless ne se contente pas d’exceller dans le multitâche : il simplifie également les workflows d’automatisation grâce à des API prêtes à l’emploi.

Fonctions API prêtes à l’emploi

Browserless propose des API adaptées aux besoins d’automatisation courants, renforçant ainsi ses fonctionnalités principales :

  • API de web scraping : extrait des données JSON structurées à partir d’éléments de pages web.
  • API Unblock : récupère le contenu HTML après l’exécution de JavaScript.
  • API Function : exécute du code Puppeteer personnalisé avec des imports de modules ESM.

Ces API ont produit des résultats concrets :

« Nous avons commencé à utiliser les navigateurs headless d’une autre entreprise de scraping pour exécuter des scripts Puppeteer. Mais les temps de récupération étaient lents, ce qui nécessitait une mise à niveau de Vercel, et les proxys ne fonctionnaient pas correctement. J’ai trouvé Browserless et notre code Puppeteer était opérationnel en une heure. Les extractions sont désormais 5 fois plus rapides et coûtent un tiers du prix, sans compter un support excellent. » – Nicklas Smit, développeur Full-Stack, Takeoff Copenhagen [2]

« Nous avons créé un outil de scraping pour entraîner nos chatbots sur des données de sites web publics, mais cela est rapidement devenu complexe en raison des cas particuliers et de la détection des bots. J’ai trouvé Browserless et prévu une journée pour l’intégration, mais cela n’a pris que quelques heures. Je n’ai pas eu besoin de devenir expert en gestion de serveurs proxy ou d’ordinateurs virtuels, ce qui me permet désormais de rester concentré sur les aspects essentiels de l’entreprise. » – Mike Heap, fondateur, My AskAI [2]

Qu’est-ce que browserless ?

sbb-itb-23997f1

Guide d’intégration des bibliothèques

Browserless Chrome fonctionne parfaitement avec les principales bibliothèques d’automatisation, en offrant performances et fiabilité. Voici comment l’intégrer à certains des outils les plus populaires.

Intégration de Puppeteer

Passer à Browserless avec Puppeteer est simple : il suffit de remplacer puppeteer.launch() par puppeteer.connect() [6].

Type de configurationStructure du codeAvantages
Puppeteer traditionnelUtilise puppeteer.launch()Consomme des ressources locales
Puppeteer avec BrowserlessUtilise puppeteer.connect()Optimisé pour le cloud
Browserless amélioréArguments de lancement personnalisésConfigurations avancées

Vous pouvez également transmettre des arguments de lancement personnalisés via l’endpoint WebSocket :

const launchArgs = JSON.stringify({
  args: ['--window-size=1920,1080'],
  stealth: true,
  timeout: 5000
});
const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://production-sfo.browserless.io/?token=YOUR_API_TOKEN_HERE&launch=${launchArgs}`
});

Cette configuration prend en charge des paramètres avancés tout en restant simple.

Intégration de Playwright

Browserless fonctionne tout aussi bien avec Playwright. Voici un exemple de connexion avec Firefox :

// Firefox implementation with Playwright Protocol
const browser = await playwright.firefox.connect(
  'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'
);

Pour les développeurs utilisant Python, Browserless garantit une expérience cohérente :

with sync_playwright() as p:
  browser = p.firefox.connect('wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE')
  context = browser.new_context()

Cette compatibilité entre les langages facilite l’intégration de Browserless dans divers workflows.

Intégration de Selenium

Pour Selenium, utilisez la configuration Ruby suivante pour vous connecter à Browserless :

caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {
  "args" => [
    "--disable-dev-shm-usage",
    "--disable-extensions",
    "--headless",
    "--no-sandbox"
  ]
})

Vous pouvez établir la connexion WebDriver à l’aide d’un format d’URL simple :

driver = Selenium::WebDriver.for :remote, 
  url: "https://[email protected]/webdriver",
  desired_capabilities: caps

Cette configuration garantit un fonctionnement sécurisé et efficace, en tirant parti du sandboxing et d’autres fonctionnalités d’économie des ressources. Fermez toujours les instances de navigateur après utilisation afin d’éviter les fuites de mémoire et d’optimiser l’utilisation des ressources.

Conseils de performance

Lorsque vous travaillez avec Browserless Chrome, la gestion des performances est essentielle pour maintenir l’efficacité. La plateforme gérant près de 5 millions de sessions headless par semaine [8], une gestion rigoureuse des ressources et de la sécurité est indispensable pour des opérations fluides à cette échelle.

Gestion des ressources

Une gestion efficace des ressources commence par la manière dont les instances de navigateur sont gérées. Au lieu de créer une nouvelle instance pour chaque tâche, réutilisez les instances existantes afin de réduire la surcharge liée au démarrage de nouvelles sessions :

const browser = await puppeteer.connect({ 
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-TOKEN' 
});
// Reuse the instance by disconnecting instead of closing
await browser.disconnect();

Une autre tactique efficace consiste à bloquer les ressources non nécessaires afin de réduire la consommation de ressources. Voici le détail :

Type de ressourceImpact sur les performancesAction recommandée
ImagesConsomment une bande passante élevéeBloquer avec page.setRequestInterception()
Fichiers CSSUtilisent de la mémoire supplémentaireDésactiver sauf s’ils sont essentiels à la mise en page
PolicesRalentissent le chargementBloquer les requêtes de polices externes

Par exemple, Browserless.io a signalé une amélioration des performances en septembre 2024 : le blocage de ces ressources a réduit le temps d’exécution de 2 114 ms à 1 676 ms [10].

Gestion d’un trafic élevé

Une fois les ressources optimisées, l’étape suivante consiste à gérer efficacement un trafic élevé. La mise à l’échelle horizontale est plus fiable que de dépendre de quelques grandes instances.

« Chrome est vraiment très efficace pour utiliser l’ensemble des ressources du système et aime consommer à parts égales le processeur et la mémoire pour la plupart des tâches » [8]

Pour répondre à des besoins à fort volume, envisagez les stratégies suivantes :

  • Utilisez Nginx pour répartir la charge entre plusieurs petites instances Browserless.
  • Activez les vérifications d’état avant requête avec PRE_REQUEST_HEALTH_CHECK=true et limitez les sessions simultanées avec MAX_CONCURRENT_SESSIONS=10.
  • Assurez une terminaison correcte des processus afin d’éviter les processus « zombies » persistants.

« Quel que soit l’endroit ou la manière dont vous exécutez vos sessions headless, il est important de tuer Chrome avec le feu de mille soleils » [8]

Configuration de la sécurité

Une configuration sécurisée protège non seulement vos données, mais garantit aussi des performances constantes sous de fortes charges. Voici comment sécuriser votre déploiement :

  • Stockez les clés API sous forme de valeurs hachées dans des environnements sécurisés.
  • Utilisez des restrictions IP pour contrôler l’accès.
  • Activez la gestion des accès basée sur les rôles.
  • Appliquez une limitation de débit aux endpoints d’API.

Pour les déploiements Docker, définissez des limites de ressources afin d’éviter la surcharge :

docker run -e MAX_CONCURRENT_SESSIONS=10 \
    -e CONNECTION_TIMEOUT=30000 \
    --memory=2g \
    --cpu-shares=1024 \
    browserless/chrome

Pour gérer du code non fiable, utilisez le module vm2 afin de créer des environnements isolés. Cette approche prévient les attaques gourmandes en processeur. Depuis le 5 mars 2018, Browserless.io utilise dumb-init dans les conteneurs Docker pour gérer efficacement la terminaison des processus [9].

Résumé

Browserless Chrome simplifie l’automatisation en prenant en charge les tâches d’infrastructure les plus lourdes, qui occupaient auparavant une part importante du temps des développeurs, soit environ 60 %. En isolant Chrome des services principaux, il garantit un meilleur équilibrage de charge, une meilleure scalabilité et une meilleure gestion des erreurs. Un exemple notable est Samsara, qui a modernisé ses tests basés sur Puppeteer en éliminant les contraintes de maintenance d’une infrastructure spécialisée. Cela a permis à ses ingénieurs de se concentrer davantage sur le développement de leur produit principal plutôt que sur les opérations backend [1].

Voici un aperçu de ce qui fait de Browserless Chrome une solution révolutionnaire :

FonctionnalitéImpact métier
Séparation de l’infrastructureEmpêche les problèmes liés à Chrome de perturber l’ensemble du service [11]
Équilibrage de charge intégréPermet une mise à l’échelle fluide sans configuration supplémentaire
Évitement de la détection des botsAugmente les taux de réussite des tâches d’automatisation web [1]
Intégration de l’API RESTSimplifie considérablement les tâches telles que la création de PDF et la génération de captures d’écran [1]

Ces fonctionnalités font du passage à Browserless Chrome un choix pratique et efficace pour les besoins d’automatisation.

Étapes pour démarrer

Vous souhaitez intégrer Browserless Chrome à votre workflow ? Voici comment commencer :

  1. Choisissez une méthode d’intégration : avant de vous lancer, testez les fonctionnalités avec le débogueur en ligne. Choisissez ensuite entre Puppeteer, Playwright ou Selenium selon vos outils actuels [7].
  2. Mettez à jour votre configuration : remplacez le lancement local de Puppeteer par une connexion à Browserless. Mettez simplement votre code à jour pour utiliser puppeteer.connect() avec votre endpoint Browserless.
  3. Suivez les performances : utilisez les outils intégrés de Browserless, tels que les vérifications d’état et les métriques de file d’attente, pour surveiller les performances [1].

References

FAQ

Frequently Asked Questions

Browserless Chrome est un service Chrome headless basé dans le cloud qui exécute des automatisations de navigateur pour le web scraping, la génération de PDF, les tests et le rendu JavaScript, sans infrastructure de navigateur locale.

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