作为w3m的新用户,我正在尝试做一些基本的事情:
w3m nytimes
产生的输出给出了疯狂的字符和符号。但是,当我使用v
进行浏览时,它会正确加载,我甚至可以使用w3m -dump_extra nytimes.com > nytimes.html
查看HTML。
当我尝试时:
style.css
除了HTML源代码外,我完全获得了与网站相关的所有额外信息。
任何帮助都将不胜感激。
答案 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
命令管道输出。