Estoy intentando escribir un script que me notifique cuando una página web estática ha cambiado. Para hacerlo, estoy usando wget
para descargar la página web y diff
comprobar si ha cambiado o no. Estoy ejecutando una máquina virtual Ubuntu 20.04 LTS. Aquí está el ejemplo:
$ 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
Como puede ver, diff
informa diferencias entre los dos archivos. ¿Por qué? Incluso si trato de compararlos, diff -y
me parecen iguales.
ACTUALIZAR
Buscando diferencias con git diff --color-words -- file1 file2
dio el siguiente resultado:
Al parecer hay un campo en el que se añade la marca de tiempo, y en uno de los dos archivos hay una <!--GENERATED_HEADERS-->
que está ausente en el otro.
¿Alguna idea de cómo solucionarlo?
Respuesta1
Puede resolver este problema utilizando w3m con -dump
una opción que ignora las etiquetas mientras representa la página.
$ 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
$
Respuesta2
Una "respuesta" más, no sobre cómo resolver esto, sino sobre qué lo causa: la versión usada de (aparentemente) TiddlyWiki parece generar su resultado.con orden de etiquetas aleatorioen elementos HTML. Ejemplos:
--- 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>
[...]
Esto se repite para atributos en tablas, imágenes y enlaces.