如何使用多次中断的 wget:s 下载大型网站?

如何使用多次中断的 wget:s 下载大型网站?

我正在尝试使用 wget 下载一个网站,但该网站太大了,我无法一次性完成所有操作。问题是服务器总是报告有新文件,当我恢复下载时,wget 会创建 filename.1、filename.2 ... 等,但我知道这些文件没有改变,或者即使它们改变了我也不在乎。有没有办法关闭时间戳检查并让 wget 假设同名文件是当前文件?

答案1

我认为您实际上是在问如何恢复大文件的中断下载。为了使它工作,服务器必须在标头中指定文件的大小。否则,大多数工具(不是全部)都不会恢复下载,并且始终从头开始,直到它们不再从服务器接收任何位。您可以content-length通过运行来手动检查标头中是否指定了该属性curl -I <url

例如,我们可以检查 askubuntu 页面徽标的标题:

$ curl -I https://cdn.sstatic.net/Sites/askubuntu/img/logo.svg

HTTP/2 200 
cache-control: max-age=604800
content-type: image/svg+xml
last-modified: Wed, 22 Jan 2020 23:01:03 GMT
accept-ranges: bytes
date: Thu, 23 Jan 2020 14:30:06 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-mxp19838-MXP
x-cache: MISS
x-cache-hits: 0
x-timer: S1579789807.662934,VS0,VE117
vary: Accept-Encoding
content-length: 11748

您可以在最底部看到content-length: 11748,如果下载中断,它可以wget恢复下载。

此外,您可以使用ariac而不是wget,在我看来,它可以更好地处理中断的下载。

相关内容