n8n + Puppeteer — scraping Chrome headless sans l'exploitation
DiffHook pilote Puppeteer pour vous, attend que le DOM se stabilise, diff le résultat contre le snapshot précédent et livre les changements à n8n via un webhook signé. Pas de binaire Chromium, pas d'image Docker, pas de redémarrage-sur-OOM.
Héberger Puppeteer à l'intérieur d'un déploiement n8n est un classique des pièges : le binaire Chromium fait exploser la taille de votre image, les workers fuient de la mémoire au bout de quelques centaines de runs et le moindre changement de page casse le script de sélecteurs à 3h du matin. DiffHook tire le navigateur dans une flotte managée. Vous décrivez une fois ce qu'il faut surveiller, et n8n ne voit que le diff post-rendu — jamais les crashs du navigateur, jamais la latence de démarrage à froid, jamais les dérives de version des plugins stealth.
Le hub n8n + DiffHook complet
Toutes les recettes, templates et tarifs n8n au même endroit.
Workflow
Brancher les diffs rendus par Puppeteer sur n8n en 5 étapes
Le navigateur tourne chez nous. n8n ne voit que les changements — pas de démarrage à froid, pas de processus Chromium zombies.
Exposer un webhook n8n
Ajoutez un node déclencheur Webhook à un workflow n8n nouveau ou existant, notez l'URL de production. C'est la destination sur laquelle DiffHook va POSTer quand le DOM rendu change.
Choisir html_rendered et le moteur Puppeteer
Passez type à html_rendered et render.engine à puppeteer. Ajoutez wait_for_selector ou wait_until: networkidle pour que DiffHook ne prenne le snapshot qu'une fois la page chargée en JS et en données.
Cibler le bon élément avec un sélecteur
DiffHook applique le sélecteur CSS au DOM rendu. Utilisez un sélecteur serré (une fiche produit précise, une ligne tarifaire, un bandeau de statut) pour que le diff reste focalisé et que n8n ne se déclenche que sur le signal qui vous intéresse.
Créer le moniteur
POST sur /v1/monitors avec l'URL, la config de rendu, le sélecteur, l'intervalle et une livraison webhook vers votre URL n8n. DiffHook planifie les runs Puppeteer — vous ne possédez rien de forme navigateur.
Réagir au changement dans n8n
Quand la sortie du sélecteur rendu change, le node Webhook de n8n se lance avec un corps JSON signé : previous_value, current_value, url, detected_at. Vérifiez le HMAC, puis routez le diff vers les étapes aval.
Exemple d'API
Moniteur rendu par Puppeteer, un POST
render.engine choisit le navigateur. Puppeteer est un bon défaut pour les sites qui testent spécifiquement les empreintes de la famille Chrome.
POST https://api.diffhook.com/v1/monitors
Authorization: Bearer $DIFFHOOK_API_KEY
Content-Type: application/json
{
"type": "html_rendered",
"url": "https://spa.example.com/pricing",
"render": { "engine": "puppeteer", "wait_for_selector": "[data-ready]" },
"css_selector": "main .plan",
"interval_seconds": 600,
"deliveries": [
{
"type": "webhook",
"url": "https://n8n.yourdomain.com/webhook/spa-pricing"
}
]
}Workflow importable
Démarrez avec un workflow n8n prêt à l'emploi
Le template vérifie le HMAC, parse le HTML rendu par Puppeteer avec HTML Extract et pousse des lignes structurées dans une base Notion. Éditez le node de destination comme vous voulez.
FAQ
n8n Puppeteer — questions fréquentes
Puppeteer vs Playwright — quel moteur choisir ?
Dois-je faire tourner mon propre Chromium quelque part ?
Comment DiffHook gère-t-il les pages qui chargent leur contenu au scroll ?
Puis-je passer des cookies d'auth à Puppeteer ?
Quelle est la cadence minimale sur les moniteurs rendus ?
Workflows associés
Aussi parfait avec DiffHook
n8n + Playwright
L'autre moteur rendu — parfois l'un passe un WAF là où l'autre se bloque.
Scraping web n8n
Scraping de HTML statique pour les pages qui n'ont pas besoin de navigateur — plus rapide et moins cher quand ça s'applique.
Webhook n8n
Vérifier le HMAC, dédupliquer les livraisons, rejouer les événements ratés — les détails sur la page webhook générique.
Scraping web Zapier
Même moteur rendu vers des Catch Hooks Zapier — forme de moniteur identique.
Scraping web Make.com
Routez le diff post-rendu vers le module webhook de Make.com pour de l'automatisation low-code.
Remplacer un script de scraping
Vous migrez d'un script Puppeteer + cron maison ? Voici à quoi ressemble le moniteur géré.
Arrêtez de livrer Chromium avec votre image n8n
Flotte Puppeteer managée, webhooks signés HMAC, vérifications à 60 secondes, offre gratuite. Passez en production en quelques minutes.