Wget

wget 似乎沒有從網頁下載圖示

  • May 28, 2020

我想下載網頁以供離線查看。特別是,我想下載這個網頁:SEP 上的 Leibniz 條目,所以我在終端中執行以下命令

wget -p -np https://plato.stanford.edu/entries/leibniz/

它應該下載顯示網頁所需的圖像等,但不會上升到父目錄。

但是,當我打開下載的網頁時,網頁上的某些圖示不見了。具體來說,下圖顯示了下載的網頁中缺少的一些圖示。(我從不同的瀏覽器得到相同的結果)

這是原始網頁的左上角:

原始網頁

這是下載網頁的左上角:

下載的網頁

我發現所有缺少的圖示都來自一種名為“Font Awesome”的字型。下載網頁時wget,它確實為我提供了一個名為“font”的子目錄,其中包含名稱包含字元串“fontawesome”的文件,因此wget確實認識到該網頁以某種方式使用該字型。

有誰知道為什麼圖示沒有顯示在下載的網頁中?

問題是wget用完整的查詢字元串保存字型名稱,所以你有fontawesome-webfont.ttf?v=3.2.1

另一方面,瀏覽器在發出請求時會拋出查詢字元串部分(?v=3.2.1)並嘗試僅請求fontawesome-webfont.ttf

TBH 我不知道“誰是罪魁禍首”- wget 或瀏覽器。

您可以通過簡單地將fontawesome-webfont.ttf?v=3.2.1文件連結設為fontawesome-webfont.ttf.

這不是新問題。其他人遇到了這種情況https://gist.github.com/pigeonflight/f8d5d6efbadf8cb341d6a44d17de3d59(有趣 - 它是相同的字型!)。

我對這個問題的解決方案是通過使用 option 來避免 unix 文件命名模式--restrict-file-names=windows。這迫使 wget 在許多其他事情中使用(參見手冊),@而不是使用標記來?正確地工作。

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