作为 w3m 的新用户,我正在尝试做一些基本的事情,例如:
w3m -dump_source nytimes.com > nytimes.html
产生的输出给出了疯狂的字符和符号。但是,当我使用 浏览时w3m nytimes
,它会正确加载,我什至可以使用v
.
当我尝试时进一步:
w3m -dump_extra nytimes.com > nytimes.html
我完美地获得了与该站点相关的所有额外信息,除了 HTML 源代码。
任何帮助,将不胜感激。
默认情况下,w3m通过发送以下 HTTP 标头从服务器请求压缩输出:
Accept-Encoding: gzip, compress, bzip, bzip2, deflate
标头的值可能会因w3m的版本而异,但事实是最新版本的程序使用标头从主机请求压缩Accept-Encoding
输出。您可以使用以下命令找出确切的标题:
w3m -dump_source -reqlog nytimes.com > /dev/null
请求和响应标头将记录到~/.w3m/request.log
文件中。
您可以通过覆盖标头来请求未压缩版本,如下所示:
w3m -dump_source nytimes.com -o accept_encoding='identity;q=0'
甚至
w3m -dump_source nytimes.com -o accept_encoding='*;q=0'
或者,通过管道解压缩输出:
w3m -dump_source nytimes.com | gunzip -f
如果输入数据不是 gunzip 识别的格式,该选项会导致 gunzip 复制输入数据而不更改-f
标准输出。根据文档,您还应该传递选项,但即使没有此选项,管道命令也应将结果打印到标准输出。--stdout
请注意,服务器可能会以bzip2
. bunzip2 -f
在这种情况下,您可以通过命令管道输出。