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
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.
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 devisSur 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.
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.
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.
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.
Une chaîne bâtie entièrement sur des navigateurs peut souvent être allégée en grande partie. Décrivez votre installation actuelle.