静的 Web ページが変更されたときに通知するスクリプトを作成しようとしています。そのためには、wget
Web ページをダウンロードし、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
2 つのファイル間の違いが報告されています。なぜでしょうか? 比較してみても、diff -y
同じに見えます。
アップデート
との相違点を調べると、git diff --color-words -- file1 file2
次の結果が得られました。
どうやら、タイムスタンプが追加されるフィールドがあり、2 つのファイルのうちの 1 つには、<!--GENERATED_HEADERS-->
もう 1 つのファイルには存在しない があります。
解決方法はありますか?
答え1
-dump
この問題は、ページのレンダリング中にタグを無視するオプション付きの w3m を使用することで解決できます。
$ 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
もう1つの「答え」は、これを解決する方法ではなく、原因についてです。使用されているバージョンの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>
[...]
これは、テーブル、画像、リンク内の属性に対して繰り返されます。