为什么 Wget 选项 --reject 不适用于重定向?

为什么 Wget 选项 --reject 不适用于重定向?

我正在尝试通过使用此(简化)命令过滤掉一些 zip 文件来递归下载网站:

wget <other_args...> --reject 'zip' https://www.domain.tld

这不起作用!Wget 看到指向文件的 URL 是 302 重定向,转到“https://www.domain.tld/html/path/to/file.zip”,并下载 zip 文件而不拒绝该 URL!

这是 wget 正在遵循的请求/响应管道:

  • Wget 请求 → https://www.domain.tld/html/path/to/file.html (--reject 'zip' 在这里有效)
  • 服务器响应 →302 redirect
  • Wget 请求 → https://www.domain.tld/html/path/to/file.zip (--reject 'zip' 在这里不起作用)

这也不起作用--reject-regex '\.zip$,因为我也尝试过了!

我被困在这里,我使用的最新版本(1.21.2)没有按 mime 类型(application/zip)过滤 URL 的选项。

一种解决方法是使用最新的 wget 2.0,它提供 mime 类型过滤功能,但我使用 wget 来生成 warc 文件,而当前 2.0 版本尚不支持该文件(wget/libwarc 可用但未集成)。

也许我做错了什么,你有什么提示或解决方案吗?

谢谢!

相关内容