我正在尝试编写一个脚本,当静态网页发生更改时通知我。为此,我用来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>
[...]
对于表、图像、链接中的属性重复此操作。