Я пытаюсь написать скрипт, который уведомляет меня об изменении статической веб-страницы. Для этого я использую wget
для загрузки веб-страницы и diff
проверки, изменилась ли она или нет. Я работаю на виртуальной машине Ubuntu 20.04 LTS. Вот пример:
$ 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
Как вы видите, diff
отчеты о различиях между двумя файлами. Почему? Даже если я пытаюсь сравнить их с diff -y
они выглядят для меня одинаково.
ОБНОВЛЯТЬ
Поиск различий git diff --color-words -- file1 file2
дал следующий результат:
Судя по всему, есть поле, в которое добавляется временная метка, и в одном из двух файлов оно <!--GENERATED_HEADERS-->
отсутствует в другом.
Есть идеи, как это решить?
решение1
Эту проблему можно решить, используя w3m с -dump
опцией, которая игнорирует теги при рендеринге страницы.
$ 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
$
решение2
Еще один «ответ» не о том, как решить эту проблему, а о том, что ее вызывает: используемая версия (судя по всему) TiddlyWiki, похоже, генерирует свой выводсо случайным порядком теговв элементах HTML. Примеры:
--- 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>
[...]
Это повторяется для атрибутов в таблицах, изображениях, ссылках.