wget 似乎无法从网页下载图标

wget 似乎无法从网页下载图标

我想下载网页以供离线查看。我特别想下载这个网页:SEP 上的莱布尼茨条目,所以我在终端中运行以下命令

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

它应该下载显示网页所需的图像等,但不会提升到父目录。

但是,当我打开下载的网页时,网页上的一些图标丢失了。具体来说,下图显示了下载的网页中缺少的一些图标。 (我从不同的浏览器得到相同的结果)

这是原始网页的左上角:

原始网页

这是下载的网页的左上角:

下载的网页

我发现所有丢失的图标都来自一种名为“字体真棒”。下载网页时wget,它确实为我提供了一个名为“font”的子目录,其中包含名称包含字符串“fontawesome”的文件,因此wget确实识别出该网页以某种方式使用了这种字体。

有谁知道为什么下载的网页中不显示图标?

答案1

问题是wget用完整的查询字符串保存字体名称,所以你有fontawesome-webfont.ttf?v=3.2.1

另一方面,浏览器在发出请求时会抛出查询字符串部分 ( ?v=3.2.1) 并尝试仅请求fontawesome-webfont.ttf

老实说,我不知道“谁应该受到责备” - wget 还是浏览器。

fontawesome-webfont.ttf?v=3.2.1您可以通过简单地将文件链接设置为 来修复这些图标fontawesome-webfont.ttf

这不是新问题。其他人也遇到过这种情况https://gist.github.com/pigeonflight/f8d5d6efbadf8cb341d6a44d17de3d59(有趣的是 - 这是相同的字体!)。

我对这个问题的解决方案是使用 option 来避免 unix 文件命名模式--restrict-file-names=windows。这迫使 wget 在许多其他东西中使用(参见手册),@而不是使用标记来?正确工作。

相关内容