我尝试使用 下载网页源代码curl
。生成的文件似乎包含“随机”字符;实际上它是 html 代码的压缩版本。我知道这是因为添加了选项--compressed
,即
curl --compressed https://example.com
产生正确的(解压缩的)html代码。
我想解压我最初下载的文件,但无法使用7z
、、、、或进行解压。这些工具似乎都无法将该文件识别为存档(可能是缺少标题?)。gzip
gunzip
zstd
brotli
我猜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 中定义),而面向文件的gzip
CLI 工具不支持。
使用管道来自 zlib,或者像 Python 之类的东西zlib.decompressobj()
来处理这种格式。