Ich versuche, ein Skript zu schreiben, das mich benachrichtigt, wenn sich eine statische Webseite geändert hat. Dazu lade ich wget
die Webseite herunter und diff
überprüfe, ob sie sich geändert hat oder nicht. Ich verwende eine virtuelle Ubuntu 20.04 LTS-Maschine. Hier ist das Beispiel:
$ wget --quiet https://twiki.di.uniroma1.it/twiki/view/Reti_Avanzate/InternetOfThings2021 -O file1
$ wget --quiet https://twiki.di.uniroma1.it/twiki/view/Reti_Avanzate/InternetOfThings2021 -O file2
$ diff -q file1 file2
Files file1 and file2 differ
Wie man sieht, diff
gibt es Unterschiede zwischen den beiden Dateien. Warum? Auch wenn ich versuche, sie zu vergleichen, diff -y
sehen sie für mich gleich aus.
AKTUALISIEREN
Die Suche nach Unterschieden ergab git diff --color-words -- file1 file2
folgendes Ergebnis:
Offenbar gibt es in einer der beiden Dateien ein Feld, in dem der Zeitstempel eingetragen wird, <!--GENERATED_HEADERS-->
welches in der anderen fehlt.
Irgendeine Idee, wie man das Problem lösen könnte?
Antwort1
Sie können dieses Problem lösen, indem Sie w3m mit -dump
einer Option verwenden, die Tags beim Rendern der Seite ignoriert.
$ w3m -dump https://twiki.di.uniroma1.it/twiki/view/Reti_Avanzate/InternetOfThings2021 > file1
$ w3m -dump https://twiki.di.uniroma1.it/twiki/view/Reti_Avanzate/InternetOfThings2021 > file2
$ if cmp -s file1 file2; then echo "Files are not different"; fi
Files are not different
$
Antwort2
Eine weitere "Antwort" nicht darauf, wie man das Problem löst, sondern was dies verursacht: Die verwendete Version von (anscheinend) TiddlyWiki scheint ihre Ausgabe zu generierenmit zufälliger Tag-Reihenfolgein HTML-Elementen. Beispiele:
--- file1
+++ file2
@@ -703,881 +703,881 @@
[...]
-<td valign="top" bgcolor="#ffffff" class="twikiTableCol2" align="left"> r1 </td>
[...]
+<td bgcolor="#ffffff" class="twikiTableCol2" align="left" valign="top"> r1 </td>
[...]
Dies wiederholt sich für Attribute in Tabellen, Bildern und Links.