Un navigateur sans tête est un navigateur web qui fonctionne sans interface utilisateur graphique et est contrôlé par du code, tout en chargeant des pages, exécutant JavaScript et rendant du contenu comme un navigateur normal. Chrome et Firefox prennent tous deux en charge le mode sans tête nativement, et des bibliothèques telles que Puppeteer, Playwright et Selenium l'utilisent pour les tests, l'automatisation et le scraping web.
Outils de navigateur sans tête et quand les utiliser
Puppeteer, Playwright et Selenium offrent chacun un contrôle programmatique sur la navigation, les clics, le remplissage de formulaires et l'attente du chargement de contenu dynamique. La documentation de Scrapy appelle à reproduire les requêtes contenant les données comme étant l'approche préférée, et suggère un navigateur sans tête lorsque ces requêtes sont difficiles à reproduire.
À quoi servent les navigateurs sans tête
Le scraping n'est qu'une seule utilisation. D'autres incluent :
- Tests automatisés : Exécution de tests de bout en bout et de suites de tests de bibliothèques JavaScript sans ouvrir de fenêtre.
- Captures d'écran et PDF : Chrome sans tête peut capturer une page avec le
--screenshotou l'enregistrer avec--print-to-pdf. - Automatisation sans surveillance : Exécution de tâches de navigateur sur des serveurs ou dans des pipelines CI, où il n'y a pas d'affichage.
Comment un navigateur sans tête est contrôlé
Vous démarrez le navigateur en mode sans tête, puis lui envoyez des commandes depuis un script. Chrome fonctionne sans tête avec le --headless. Puppeteer lance Chrome ou Firefox sans tête par défaut et le contrôle via le Chrome DevTools Protocol ou WebDriver BiDi. Selenium utilise la norme W3C WebDriver. Le script indique au navigateur quelles pages ouvrir et quoi y faire, puis lit le résultat.