Wget
為什麼使用 wget 兩次下載相同的網頁會導致兩個不同的文件?
我正在嘗試編寫一個腳本,當靜態網頁發生更改時通知我。為此,我正在使用
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-->
中沒有。關於如何解決它的任何想法?
-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 $
另一個“答案”不是關於如何解決這個問題,而是是什麼原因造成的:(顯然)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> [...]
這對錶格、圖像、連結中的屬性重複。