Guide · Dernier recours

Navigateur headless : quand il est nécessaire

Un navigateur sans fenêtre, piloté par du code, qui charge les pages exactement comme le ferait un humain. C'est l'outil qui permet d'atteindre à peu près tout, et c'est aussi celui qui fait exploser les budgets quand on s'en sert par défaut.

Publié le

De quoi il s’agit

Un navigateur headless est un vrai navigateur, le même moteur que celui installé sur votre machine, mais lancé sans interface graphique et commandé par un programme. Il charge la page, exécute son code, applique les styles, déclenche les appels en arrière-plan, puis on lui demande ce qu’il a obtenu.

La différence avec une simple requête est radicale. Une requête demande un document et reçoit du texte. Un navigateur headless reconstitue toute la page, comme si quelqu’un la regardait.

Avant d’aller plus loin : cette page suppose que vous avez déjà fait le diagnostic et conclu qu’aucune voie plus légère ne convenait. Dans la majorité des cas, une voie plus légère convient.

Ce que ça permet, et que rien d’autre ne permet

  • Reproduire un parcours. Se connecter, remplir un formulaire de recherche, appliquer des filtres, cliquer sur « afficher la suite » jusqu’à épuisement.
  • Attendre l’état réel de la page. Certaines valeurs n’apparaissent qu’après plusieurs étapes de chargement, et il faut pouvoir attendre la bonne plutôt qu’un délai fixe.
  • Franchir une signature calculée. Quand le site signe ses appels par un calcul effectué dans son propre code, laisser le navigateur l’exécuter coûte moins cher que de le réimplémenter.
  • Capturer ce qui est affiché. Pour une preuve datée, une vérification visuelle, ou un contrôle de conformité.

Ce que ça coûte vraiment

C’est la partie qu’on découvre en production plutôt qu’en démonstration. Une instance de navigateur consomme plusieurs centaines de mégaoctets de mémoire et un cœur de processeur pendant toute la durée de la page. Là où une requête simple se compte en dizaines de millisecondes, un chargement complet se compte en secondes.

Pour 100 000 pages Requête simple Navigateur headless
Durée par page Quelques dizaines de millisecondes Deux à dix secondes
Mémoire par unité de travail Négligeable Plusieurs centaines de mégaoctets
Parallélisme sur une machine Des centaines de requêtes Quelques instances
Volume réseau Le document seul Images, polices, scripts, traceurs
Conséquence sur la facture Marginale Le premier poste de coût

Votre collecte repose entièrement sur des navigateurs ? Une bonne partie du volume peut souvent passer par des requêtes directes. C’est le premier point que regarde un audit de chaîne existante.

Demander un devis

Sur un projet à fort volume, l’écart ne se rattrape pas en optimisant. Il se rattrape en changeant d’approche, c’est-à-dire en cherchant l’appel interne qui fournit la même donnée.

Deux réglages réduisent la facture sans changer d’approche, et ils sont trop souvent oubliés. Bloquer le chargement des images, des polices et des traceurs, qui représentent l’essentiel du volume réseau et ne servent à aucune collecte. Et réutiliser les instances au lieu d’en démarrer une par page, le démarrage étant le poste le plus coûteux du cycle.

Le réflexe coûteux

Beaucoup de projets démarrent avec un navigateur parce que c’est ce qui fonctionne le plus vite à écrire. La facture d’infrastructure arrive trois mois plus tard, et elle est souvent d’un ordre de grandeur supérieur à ce qu’elle aurait dû être.

Avec quel outil

Le sujet occupe des palmarès entiers, et il mérite trois lignes.

Playwright par défaut : il pilote les trois moteurs, son attente des éléments est fiable par construction, et il demande le moins de rustines. Puppeteer si le projet est déjà en Node et ne vise que Chrome. Selenium uniquement par héritage, quand une base existante en dépend.

Ce choix pèse beaucoup moins que la décision d’utiliser un navigateur ou non. Entre deux outils, l’écart se compte en facteur deux ; entre un navigateur et une requête directe, en facteur cinquante. Passer une semaine à comparer des bibliothèques après avoir tranché trop vite sur l’approche revient à optimiser la mauvaise ligne.

La question de la détection

Un navigateur automatisé ne se comporte pas tout à fait comme un navigateur conduit par une personne, et certains sites cherchent activement ces différences.

Le sujet a changé de nature. La détection ne repose plus sur l’en-tête d’identification, qui se change en une ligne, mais sur l’empreinte du navigateur : des centaines de propriétés observables, du rendu graphique aux polices disponibles, dont la combinaison est plus stable qu’une adresse. S’y ajoute l’analyse du comportement, où un rythme de navigation trop régulier suffit à distinguer une machine.

Il existe des outils qui tentent de masquer ces signaux. Leur efficacité fluctue en permanence, parce qu’ils sont dans une course avec les dispositifs de détection, et une méthode qui fonctionnait il y a six mois peut être identifiée aujourd’hui.

Ce que nous ne promettons pas

Aucun outil ne garantit de passer durablement un dispositif de détection sérieux, et quiconque l’affirme vend une promesse qu’il ne peut pas tenir. La faisabilité se teste sur votre cas précis, et le résultat est annoncé tel quel, y compris quand il est négatif.

Quand c’est le bon choix

Malgré son coût, le navigateur reste la bonne réponse dans quatre situations. Quand le volume est modeste et que le temps de développement compte plus que le temps d’exécution. Quand le parcours à reproduire comporte des étapes impossibles à rejouer autrement. Quand le site produit sa signature de requêtes par un calcul interne qu’il serait trop long de reconstituer. Et quand il faut précisément la page telle qu’elle s’affiche, pour une capture ou un contrôle.

Une approche mixte donne souvent le meilleur résultat : un navigateur pour la phase d’ouverture de session ou de découverte, puis des requêtes directes pour le gros du volume. C’est la configuration la plus fréquente sur les projets qui tiennent dans la durée, et presque jamais celle qui sort d’une première version.

Questions fréquentes

Playwright ou Puppeteer ?
Playwright dans un nouveau projet : il pilote les trois moteurs et son attente des éléments est plus fiable. Puppeteer reste pertinent si la base est déjà en Node et ne vise que Chrome.
Un navigateur headless est-il détectable ?
Oui, et de plus en plus facilement. La détection porte aujourd'hui sur l'empreinte du navigateur et sur le comportement, pas sur un en-tête qu'il suffirait de changer.
Combien de pages par machine ?
Quelques instances en parallèle là où des requêtes directes s'en permettent des centaines. C'est cette limite, plus que la vitesse par page, qui détermine la facture.
Peut-on réduire le coût sans changer d'approche ?
En partie : bloquer images, polices et traceurs, et réutiliser les instances plutôt qu'en démarrer une par page. Au-delà, seul un changement de voie fait gagner un ordre de grandeur.
Contact

Votre collecte vous coûte-t-elle trop cher ?

Une chaîne bâtie entièrement sur des navigateurs peut souvent être allégée en grande partie. Décrivez votre installation actuelle.

Demander un devis Voir les cas d'usage Étude de faisabilité sans frais · sans engagement