curl 可以解压已经下载的本地文件吗?

curl 可以解压已经下载的本地文件吗?

我尝试使用 下载网页源代码curl。生成的文件似乎包含“随机”字符;实际上它是 html 代码的压缩版本。我知道这是因为添加了选项--compressed,即

curl --compressed https://example.com

产生正确的(解压缩的)html代码。

我想解压我最初下载的文件,但无法使用7z、、、、或进行解压。这些工具似乎都无法将该文件识别为存档(可能是缺少标题?)。gzipgunzipzstdbrotli

我猜curl应该能够解压缩它,因为这就是它在使用时动态执行的操作--compressed。从curl手册页中:

--compressed 使用 curl 支持的算法之一请求压缩响应,并自动解压缩内容。标头不会被修改。

我尝试过类似的事情

curl --compressed file:///path/to/compressed/file --output decompressed.html

但至今还没有运气。

您知道我可以使用哪个命令行吗(带或不带curl)?

答案1

运行curl -i <url>并查看标题。

一种常见的 HTTP 压缩方法是Content-Encoding: deflate,它与 gzip 的算法完全相同(并且通常由同一个库)但使用不同的框架(在 RFC 1950 而不是 RFC 1952 中定义),而面向文件的gzipCLI 工具不支持。

使用管道来自 zlib,或者像 Python 之类的东西zlib.decompressobj()来处理这种格式。

相关内容