Général
Georges Miloradovitch
Chercheur, rédacteur et intervieweur de cas d'utilisation
28 février 2025
Une plateforme low-code alliant la simplicité du no-code à la puissance du full-code 🚀
Commencez gratuitement
28 février 2025
8
min lire

Chrome sans navigateur : un outil puissant pour l'automatisation du navigateur

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

Chrome sans navigateur est un service basé sur le cloud qui simplifie l'automatisation du navigateur en exécutant Chrome sans interface utilisateur pour des tâches telles que le scraping Web, la génération de PDF et les tests. Il élimine le besoin de configurations de navigateur locales et gère automatiquement les pannes de navigateur, l'isolation des sessions et l'optimisation des ressources. Les principaux avantages sont les suivants :

  • Aucune configuration locale:Utilisez Docker ou le déploiement cloud pour démarrer rapidement.
  • Performance rapide:Captures d'écran en ~1 seconde, PDF en ~2 secondes.
  • Contournement de la détection des robots: Surmonte les bloqueurs comme Cloudflare pour une automatisation fiable.
  • Efficacité des ressources:Réduit l'utilisation du proxy et de la machine virtuelle jusqu'à 90 %.

Installation rapide: Intégrez-vous aux bibliothèques populaires telles que Marionnettiste, Dramaturge, ou Sélénium en utilisant des méthodes de connexion simples. Browserless propose également des API pour le scraping Web, le rendu JavaScript et les flux de travail d'automatisation personnalisés.

Comparaison rapide des fonctionnalités

Fonctionnalité Bénéfice Exemple
Nettoyage de session Supprime automatiquement les sessions inactives Maintient les ressources optimisées
Prévention de la détection des robots Contourne les bloqueurs comme Cloudflare Fiable pour les tâches de scraping
Traitement multitâche Gère efficacement les demandes simultanées Plus de 2 millions de sessions traitées chaque semaine
API prêtes à l'emploi Simplifie les tâches d'automatisation Extraction de données JSON, PDF

Chrome sans navigateur est idéal pour les développeurs et les entreprises qui cherchent à rationaliser l'automatisation sans gérer une infrastructure complexe.

Guide d'installation

Comment faire pour installer

Pour commencer à utiliser Chrome sans navigateur, vous pouvez choisir entre deux options d'installation : une configuration locale à l'aide de Docker ou un déploiement dans le cloud. Pour une configuration Docker locale, utilisez la commande suivante :

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

Cette commande extrait la dernière image et la rend accessible sur le port 3000. Elle fonctionne parfaitement sous Windows, macOS et Linux.

Configuration initiale

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

Fonctionnalité Paramètres par défaut Objectif
Nettoyage de session en 30 secondes Supprime automatiquement les sessions inactives
Bilans de santé Activé Assure la stabilité du système
File d'attente des demandes configurable Gère plusieurs connexions simultanées
Limites de ressources Ajustable Contrô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 configuré, vous pouvez vous connecter à Browserless en utilisant votre méthode d'intégration préférée.

Établir votre première connexion

Selon la bibliothèque que vous utilisez, voici comment vous pouvez établir votre première connexion :

  • Connexion marionnettiste
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Intégration du dramaturge
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é avec deux points de terminaison régionaux : la côte ouest des États-Unis (production-sfo.browserless.io) et l'Europe (production-lon.browserless.io). Ces points de terminaison gèrent l'isolation des sessions, gèrent les demandes simultanées et récupèrent automatiquement après les pannes. Ils nettoient également les sessions inactives après 30 secondes en lançant une nouvelle instance de navigateur pour chaque nouvelle session.

Caractéristiques principales

Notions de base sur les navigateurs sans tête

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

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

Fonctionnalité Description Bénéfice
Isolement de session Sessions de navigation indépendantes Réduit les coûts d'infrastructure
Récupération automatique Redémarrages après crash Maintient les opérations en cours
Optimisation des ressources Utilisation efficace de la mémoire et du processeur Augmente les performances globales

Au-delà de ces éléments essentiels, Browserless est conçu pour gérer plusieurs tâches en même temps en toute simplicité.

Traitement multitâche

Avec plus de 2 millions de sessions gérées, Browserless Chrome a généré des millions de captures d'écran, de PDF et de résultats de tests. Son système de gestion de file d'attente intelligent garantit que les demandes sont traitées sans surcharger les ressources, en maintenant des performances constantes. Cela s'est avéré particulièrement utile pour des entreprises comme Samsara, qui est passé d'un service de test interne à Browserless pour une meilleure évolutivité.

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

Browserless n'excelle pas seulement dans le multitâche : il simplifie également les flux de travail d'automatisation avec des API prêtes à l'emploi.

Fonctions API prêtes à l'emploi

Browserless propose des API adaptées aux besoins d'automatisation courants, améliorant ainsi ses fonctionnalités principales :

  • API de grattage Web: Extrait des données JSON structurées à partir d'éléments de page Web.
  • Débloquer l'API: Récupère le contenu HTML après l'exécution de JavaScript.
  • API de fonction: Exécute le code Puppeteer personnalisé avec les importations de modules ESM.

Ces API ont fourni des résultats concrets :

« Nous avons commencé à utiliser les navigateurs headless d'une autre société de scraping pour exécuter les scripts Puppeteer. Mais il a fallu une mise à niveau de Vercel en raison des temps de récupération lents et les proxys ne fonctionnaient pas correctement. J'ai trouvé Browserless et j'ai fait fonctionner notre code Puppeteer en une heure. Les scrapings sont maintenant 5 fois plus rapides et 1/3 du prix, et le support a été excellent. » – Nicklas Smit, développeur Full-Stack, Takeoff Copenhagen

« Nous avons créé un outil de scraping pour former nos chatbots sur les données des sites Web publics, mais cela s'est rapidement compliqué en raison des cas extrêmes et de la détection des robots. J'ai trouvé Browserless et j'ai réservé une journée pour l'intégration, mais cela n'a pris que quelques heures. Je n'avais pas besoin de devenir un expert dans la gestion des serveurs proxy ou des ordinateurs virtuels, donc maintenant je peux me concentrer sur les parties essentielles de l'entreprise. » – Mike Heap, fondateur, My AskAI

Qu'est-ce que le sans navigateur ?

sbb-itb-23997f1

Guide d'intégration de la bibliothèque

Chrome sans navigateur fonctionne parfaitement avec les principales bibliothèques d'automatisation, offrant performances et fiabilité. Voici comment vous pouvez l'intégrer à certains des outils les plus populaires.

Marionnettiste Intégration :

Marionnettiste

Passer au mode sans navigateur dans Puppeteer est simple : il suffit de remplacer puppeteer.launch() avec puppeteer.connect() .

Type de configuration Structure du code Avantages
Marionnettiste traditionnel Utilisations puppeteer.launch() Consomme les ressources locales
Marionnettiste sans navigateur Utilisations puppeteer.connect() Optimisé pour le cloud
Navigateur sans navigateur amélioré Arguments de lancement personnalisés Configurations avancées

Vous pouvez également transmettre des arguments de lancement personnalisés via le point de terminaison 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 les configurations avancées tout en conservant la simplicité.

Dramaturge Intégration :

Dramaturge

Browserless fonctionne également bien avec Playwright. Voici un exemple de connexion à l'aide de 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é interlinguistique facilite l’intégration de Browserless dans divers flux de travail.

Sélénium Intégration :

Sélénium

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ûr et efficace, en tirant parti du sandboxing et d'autres fonctionnalités d'économie de ressources. Fermez toujours les instances du navigateur après utilisation pour éviter les fuites de mémoire et optimiser l'utilisation des ressources.

Conseils de performance

Lorsque vous travaillez avec Chrome sans navigateur, la gestion des performances est essentielle pour maintenir l'efficacité. La plateforme gérant près de 5 millions de sessions headless chaque semaine, une gestion minutieuse des ressources et de la sécurité est essentielle pour des opérations fluides à cette échelle.

Gestion des ressources

La gestion efficace des ressources commence par la manière dont les instances du navigateur sont gérées. Au lieu de créer une nouvelle instance pour chaque tâche, réutilisez les instances existantes pour réduire la charge de travail 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 inutiles pour réduire l'utilisation des ressources. Voici une analyse détaillée :

Type de ressource Impact sur les performances Action recommandée
Images Consomme beaucoup de bande passante Bloquer en utilisant page.setRequestInterception()
Fichiers CSS Utilise de la mémoire supplémentaire Désactiver sauf si cela est critique pour la mise en page
Polices Ralentit le chargement Bloquer les demandes de polices externes

Par exemple, Browserless.io a signalé une amélioration des performances en septembre 2024, où le blocage de ces ressources a réduit le temps d'exécution de 2,114 1,676 ms à XNUMX XNUMX ms.

Gestion du trafic intense

Une fois les ressources optimisées, l'étape suivante consiste à gérer efficacement le trafic élevé. La mise à l'échelle horizontale est plus fiable que le recours à quelques grandes instances.

"Chrome est vraiment vraiment bon pour utiliser toutes les ressources du système et aime utiliser des parts égales de CPU et de mémoire pour la plupart des choses"

Pour gérer des demandes volumineuses, envisagez les stratégies suivantes :

  • Utilisez Nginx pour équilibrer la charge sur plusieurs instances sans navigateur plus petites.
  • Activer les contrôles de santé avant la demande avec PRE_REQUEST_HEALTH_CHECK=true et limiter les sessions simultanées en utilisant MAX_CONCURRENT_SESSIONS=10.
  • Assurez-vous de terminer correctement le processus pour éviter les processus « zombies » persistants.

« Peu importe où et comment vous exécutez vos sessions headless, il est important de tuer Chrome au feu de mille soleils"

Configuration de la sécurité

Une configuration sécurisée protège non seulement vos données, mais garantit également des performances constantes en cas de charges importantes. 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.
  • Activer la gestion des accès basée sur les rôles.
  • Appliquer la limitation de débit aux points de terminaison de l'API.

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

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

Pour gérer le code non fiable, utilisez le vm2 module pour créer des environnements isolés. Cette approche empêche les attaques gourmandes en CPU. Depuis le 5 mars 2018, Browserless.io utilise dumb-init au sein des conteneurs Docker pour gérer efficacement la fin des processus.

Résumé

Chrome sans navigateur simplifie l'automatisation en prenant en charge les tâches lourdes d'infrastructure, qui occupaient auparavant une part importante du temps des développeurs (environ 60 %). En isolant Chrome des services principaux, il garantit un meilleur équilibrage de charge, une meilleure évolutivité et une meilleure gestion des erreurs. Samsara en est un exemple notable : elle a remanié ses tests basés sur Puppeteer en supprimant les tracas liés à la maintenance d'une infrastructure spécialisée. Cela a permis à ses ingénieurs de se concentrer davantage sur la création de leur produit principal au lieu de se soucier des opérations en arrière-plan.

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

Fonctionnalité Impact sur les entreprises
Séparation des infrastructures Empêche les problèmes liés à Chrome de perturber l'ensemble du service
Équilibrage de charge intégré Permet une mise à l'échelle sans effort et sans configuration supplémentaire
Évitement de la détection des robots Augmente les taux de réussite des tâches d'automatisation Web
Intégration de l'API REST Facilite grandement les tâches telles que la création de PDF et la génération de captures d'écran

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

Étapes de démarrage

Vous souhaitez intégrer Chrome sans navigateur à votre flux de travail ? Voici comment vous pouvez commencer :

  1. Choisissez une méthode d'intégration:Avant de vous lancer, testez la fonctionnalité avec le débogueur en ligne. Ensuite, choisissez entre Puppeteer, Playwright ou Selenium en fonction de vos outils actuels.
  2. Mettez à jour votre configuration: Remplacez votre lancement Puppeteer local en vous connectant à Browserless. Mettez simplement à jour votre code pour utiliser puppeteer.connect() avec votre point de terminaison sans navigateur.
  3. Suivre les performances:Utilisez les outils intégrés de Browserless tels que les contrôles de santé et les mesures de file d'attente pour garder un œil sur les performances.

À lire également

Blogs connexes

Cas d'utilisation

Soutenu par