1

我正在尝试将网站递归下载到本地目录。LWP允许我lwp-rget这样做,但我遇到了以下问题:它保存了所有带有扩展名.bin而不是.rpm, .xml,.html等的文件。

我一直在尝试使用--keepext=application/xml或任何类型,但它继续将文件保存为.bin. 有什么办法可以lwp-rget使用更好的文件扩展名?谢谢。


在 Daxim 的帮助下修复了它。我现在可以调用 lwp-rget --keepext=application/octet-stream --hier URL并递归地将网站中出现的所有文件以适当的层次结构下载到本地目录。希望这对遇到类似问题的人有所帮助。谢谢大家。

4

2 回答 2

1

要全局影响该--keepext选项,请指定一个.media.types文件

于 2012-07-09T20:05:04.007 回答
1

无论您是否使用--keepext,服务器返回的 MIME 类型将决定使用哪个扩展lwp-rget。所以我们应该做的第一件事来调试它是确定返回的 MIME 类型。这可以使用

lwp-request -ed http://... | grep -oP 'Content-Type: \K.*'

如果要lwp-rget使用 URL 中的扩展名,则需要使用--keepext.

如果不这样做,lwp-rget将通过调用LWP::MediaTypes来确定要使用的扩展名media_suffix。例如,

  • .xml将用于application/xml
  • .html将用于text/html
  • .bin将用于application/octet-stream
于 2012-07-09T21:17:33.910 回答