根据手册页,当我指定--convert-links
wget 时:
下载完成后,对文档中的链接进行转换,使其适合本地查看[...]注意,只有下载结束时Wget才能知道哪些链接被下载了。因此,-k 完成的工作将在所有下载结束时执行。
假设我做了类似的事情wget --convert-links http://stackoverflow.com
。这个网站太大了,我可能永远无法完成所有内容的下载。在这种情况下,我的链接将永远不会被转换吗?
当我在本地运行此命令时/tmp/wget
,我看到一个名为和stackoverflow.com
等文件的目录。但是,当我加载索引页面并将鼠标悬停在游览链接上时,它会将我带到, 而不是(实际文件位置)。index.html
tour.html
file:///tour.html
file:///tmp/wget/stackoverflow.com/tour.html
答案1
你唯一的问题似乎是:
在这种情况下,我的链接将永远不会被转换吗?
我猜不会。您可以在大小有限的分区上尝试此操作,并查看 wget 在空间不足时执行的操作(或使用该--quota
选项,大概它仍会随之转换)。
我可以理解为什么这是这个策略。如果这是即时完成的,那么我们将必须仔细检查下载的每个项目的每个文档。考虑:
- A.html 已下载。
- B.html 已下载,现在检查 A.html 的链接。
- C.html 已下载,现在检查 A.html 和 B.html 的链接。
- ...等等。
相反,大概会保留一份清单,然后最后扫描所有文件一次。当然,我的即时方法可以通过保留所有链接的索引来改进,但我仍然认为它会慢几个数量级 -并且需要更频繁地写入磁盘。 您通常会重写数十次或数百次,而不是保存文件,然后在最后更改一次。