2009-09-29 17 views
1

J'ai recherché sur Google et je n'ai trouvé aucun qui pourrait comparer une page Web à une version précédente.Regarder une page Web pour les changements

Dans ce cas, la page que j'essaie de regarder est link text. Il y a des services qui peuvent regarder une page, mais je voudrais l'installer sur mon propre serveur. Je l'ai configuré comme un wiki pour que tout le monde puisse l'ajouter au code. Voici mon idée

  1. Vérifiez si la version précédente du fichier existe. Si faux, alors téléchargez la page
  2. Si la page existe, diff pour trouver les différences et envoyer le nouveau contenu par courriel avec les dates des nouvelles et anciennes versions.

Ce script serait appelé par nuit Cron ou à la demande via le navigateur (ce dernier n'est pas une priorité)

Cela paraît simple, peut-être que je ne suis pas regarder au bon endroit.

+0

$ Il y a deux choses qui peuvent vous aider à fait dans la bonne direction: http://www.diffbot.com et une application épaisse http://www.changedetect.com Ce dernier vous permet de générer des e-mails de différences. Je ne sais pas si c'est la solution complète, mais –

+0

Je me suis inscrit pour ces deux services, nous verrons comment ils fonctionnent. Mais encore une fois, serait vraiment plus agréable d'avoir un script simple, on peut mettre sur un serveur web et programmer via cron. – shaiss

Répondre

0

Vous pouvez vérifier This SO posting pour obtenir quelques idées et aussi des informations sur le défi de la détection des changements « vrais » à une page Web (avec fluctuant bloc publicitaire, et d'autres « bruit »)

+0

messages valides, mais je ne cherche pas à empreintes digitales, comme dans ce cas, son site avec des changements mineurs qui se produisent chaque semaine. Donc, même si le changement est mineur serait toujours agréable de le voir. – shaiss

3

Peut-être simple SH- script comme ça, avec wget, diff & test?

#!/bin/sh 

WWWURI="http://foo.bar/testfile.html" 
LOCALCOPY="testfile.html" 
TMPFILE="tmpfile" 
WEBFILE="changed.html" 

MAILADDRESS="$(whoami)" 
SUBJECT_NEWFILE="$LOCALCOPY is new" 
BODY_NEWFILE="first version of $LOCALCOPY loaded" 
SUBJECT_CHANGEDFILE="$LOCALCOPY updated" 
SUBJECT_NOTCHANGED="$LOCALCOPY not updated" 
BODY_CHANGEDFILE="new version of $LOCALCOPY" 

# test for old file 
if [ -e "$LOCALCOPY" ] 
then 
    mv "$LOCALCOPY" "$LOCALCOPY.bak" 
    wget "$WWWURI" -O"$LOCALCOPY" -o/dev/null 
    diff "$LOCALCOPY" "$LOCALCOPY.bak" > $TMPFILE 

# test for update 
    if [ -s "$TMPFILE" ] 
    then 
     echo "$SUBJECT_CHANGEDFILE" 
     (echo "$BODY_CHANGEDFILE" ; cat "$TMPFILE") | tee "$WEBFILE" | mail -s "$SUBJECT_CHANGEDFILE" "$MAILADDRESS" 
    else 
     echo "$SUBJECT_NOTCHANGED" 
    fi 
else 
    wget "$WWWURI" -O"$LOCALCOPY" -o/dev/null 
    echo "$BODY_NEWFILE" 
    echo "$BODY_NEWFILE" | tee "$WEBFILE" | mail -s "$SUBJECT_NEWFILE" "$MAILADDRESS" 
fi 
[ -e "$TMPFILE" ] && rm "$TMPFILE" 

Mise à jour: tuyau à travers tee, peu l'orthographe & supprimer des TMPFILE

+0

super script, je l'ai mis sur mon serveur web et je reviendrai bientôt avec les résultats – shaiss

+0

script fonctionne comme un charme, mais je crois toujours que la solution idéale serait un langage web qui permet d'accéder via le navigateur – shaiss

+0

Le tee-shirt Pipe va écrire le diff dans un fichier (et ensuite le rediriger vers mail). Pour une version plus sophistiquée, vous voulez probablement passer à PHP ou des choses similaires :) – osti