Wget

為什麼使用 wget 兩次下載相同的網頁會導致兩個不同的文件?

  • June 1, 2021

我正在嘗試編寫一個腳本,當靜態網頁發生更改時通知我。為此,我正在使用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>
[...]

這對錶格、圖像、連結中的屬性重複。

引用自:https://unix.stackexchange.com/questions/652279