使用w3m转储html源会产生意外的字符/符号

时间:2017-01-22 06:23:06

标签: html http w3m

作为w3m的新用户,我正在尝试做一些基本的事情:

w3m nytimes

产生的输出给出了疯狂的字符和符号。但是,当我使用v进行浏览时,它会正确加载,我甚至可以使用w3m -dump_extra nytimes.com > nytimes.html 查看HTML。

当我尝试时:

style.css

除了HTML源代码外,我完全获得了与网站相关的所有额外信息。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

默认情况下, w3m 通过发送以下HTTP标头来请求服务器的压缩输出:

Accept-Encoding: gzip, compress, bzip, bzip2, deflate

标头的值可能会因 w3m 的版本而异,但事实是最新版本的程序使用{从主机输出压缩输出{ {1}}标题。您可以使用以下命令找到确切的标题:

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'

如果输入数据不是 gunzip 识别的格式,w3m -dump_source nytimes.com | gunzip -f 选项会导致 gunzip 复制输入数据而不更改标准输出。根据文档,您还应该传递-f选项,但是管道命令应该将结果打印到标准输出,即使没有此选项。

注意,服务器可能会回复--stdout中压缩的内容。在这种情况下,您可以通过bzip2命令管道输出。