Script pour surveiller les changements d'un site — ou abandonner le script
Si vous tapez 'script python pour surveiller un site' ou 'node monitor webpage' dans Google, vous connaissez déjà la forme : fetch d'une URL, hash, comparaison au dernier run, alerte sur changement. Cette page montre la version courte dans les deux langages — puis l'alternative webhook managée qui remplace le script en production.
Le script ci-dessous tient environ une semaine. Puis une classe CSS change, le laptop se met en veille, le cron meurt en silence, l'URL webhook Slack est révoquée et personne ne sait que le moniteur ne tourne plus. DiffHook, c'est la même chose — mais quelqu'un d'autre gère l'infrastructure, le webhook est signé HMAC et le journal de livraison survit à un redémarrage de laptop.
Python
Script Python pour surveiller un site
Une dizaine de lignes de Python suffisent à interroger une page, hasher la réponse et détecter un changement. La partie 'et après ?' est celle où les vrais scripts grossissent — retries, déduplication, livraison signée, logs.
import hashlib, time, urllib.request
URL = "https://example.com/pricing"
last = None
while True:
html = urllib.request.urlopen(URL).read()
h = hashlib.sha256(html).hexdigest()
if last and h != last:
print("changed") # then… what?
last = h
time.sleep(300)Ça tient pour une page unique le temps d'une démo. En production, il faudra ajouter : timeouts, en-tête User-Agent, gestion d'erreurs, base de données (ou fichier) pour conserver le dernier hash, et une couche de livraison qui ne fait pas planter le script.
Node
Ou : POSTer un moniteur à DiffHook
L'équivalent Node — sauf qu'au lieu d'entretenir une boucle de polling, ce bout de code crée un moniteur géré qui tourne dans l'infrastructure DiffHook et déclenche un webhook en cas de changement.
await fetch("https://api.diffhook.com/v1/monitors", {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "page",
url: "https://example.com/pricing",
interval_seconds: 300,
deliveries: [{ type: "webhook", url: hookUrl }],
}),
})Pas de cron, pas de VPS, pas de 'mon laptop s'est-il mis en veille ?'. Le webhook est signé HMAC-SHA256 et réessayé en cas d'échec. Les journaux de livraison sont interrogeables via l'API.
Pourquoi remplacer le script
Ce qu'un moniteur managé vous apporte réellement
Il y a une raison pour laquelle personne ne laisse son script Python en production. Ces six-là sont les modes de défaillance qui finissent en astreinte du week-end.
Pas d'échecs silencieux
Quand le moniteur DiffHook n'arrive pas à récupérer une page, vous recevez une notification — pas un cron qui tourne dans le vide depuis trois semaines.
Webhooks signés
Chaque livraison porte un en-tête de signature HMAC-SHA256 pour que votre destinataire vérifie que le POST vient bien de DiffHook et n'a pas été altéré.
Retries intégrés
Les livraisons échouées sont réessayées avec un backoff exponentiel. Un destinataire instable ne vous fait pas perdre d'événements.
Historique des diffs
Les changements passés sont stockés et rejouables. Votre script aurait besoin d'une base de données dédiée — DiffHook livre l'historique comme une fonctionnalité du produit.
Rendu JS
Pages client-rendered, SPA et dashboards fonctionnent d'emblée. Chromium headless est géré pour vous — pas d'installation Playwright à entretenir.
Accès équipe
Les collègues peuvent consulter les moniteurs, les mettre en pause, inspecter les journaux. Votre script shell sur un laptop ne fait pas ça.
FAQ
Scripts vs moniteurs managés
Devrais-je écrire mon propre script plutôt qu'utiliser DiffHook ?
Puis-je garder mon script et n'utiliser DiffHook que pour la livraison ?
DiffHook fonctionne-t-il aussi pour la surveillance d'API JSON ?
À quoi ressemble le payload webhook DiffHook ?
Associés
Ressources connexes
Surveiller les sites concurrents
La plupart des scripts maison servent à surveiller la page de tarifs ou le changelog d'un concurrent. Voici le cas d'usage complet.
Surveillance d'endpoints API
L'équivalent JSON de cette page — quand ce que vous voulez surveiller est un endpoint REST.
Tous les outils de détection de changements web
Comparaisons côte à côte avec Visualping, Distill.io, Changedetection.io et d'autres — si vous voulez choisir un outil managé sans écrire de code.
Remisez votre script de polling
3 moniteurs gratuits, webhooks signés HMAC, journaux de livraison rejouables, API REST complète. Sans carte bancaire.