【发布时间】:2011-07-22 00:03:45
【问题描述】:
我在Linux下,我想从网上获取一个html页面,然后在终端上输出。我发现html2text 基本上完成了这项工作,但它将我的html 转换为纯文本,而我最好本着ls --color=auto 的精神将其转换为ansi 彩色文本。有什么想法吗?
【问题讨论】:
标签: html terminal ansi-colors
我在Linux下,我想从网上获取一个html页面,然后在终端上输出。我发现html2text 基本上完成了这项工作,但它将我的html 转换为纯文本,而我最好本着ls --color=auto 的精神将其转换为ansi 彩色文本。有什么想法吗?
【问题讨论】:
标签: html terminal ansi-colors
elinks 浏览器可以做到这一点。其他文本浏览器,例如 lynx 或 w3m 或许也能做到这一点。
elinks -dump -dump-color-mode 1 http://example.com/
上面的示例提供了http://example.com/ 的文本版本,使用16 种颜色。输出格式可以根据需要进一步定制。
-dump 选项启用转储模式,该模式仅将整个页面打印为文本,链接目标以一种“电子邮件样式”打印出来。
-dump-color-mode 1 启用使用 16 种基本终端颜色对输出进行着色。根据终端仿真器的价值和能力,这可能高达约 1600 万(真彩色)。这些值记录在elinks.conf(5)。
也可以配置用于输出的颜色,这在elinks.conf(5) 中也有记录。
【讨论】:
elinks 不会自动重置终端颜色,从而导致任何后续输出(来自脚本或终端)与 elinks 输出的结尾颜色相同,直到出现新颜色遇到代码。您可以通过在elinks 之后执行tput sgr0 来手动重置。
【讨论】:
lynx 也可以,但我只需要输出页面而不是浏览它。
w3m 也有类似 -dump 的选项,elinks 也有。这只是选择您最喜欢的那个的问题。
您可以使用 lynx 浏览器使用此命令输出文本。
lynx -dump http://example.com
【讨论】:
lynx -dump 也包含颜色吗?至少在我的发行版中,lynx 是针对ncurses 编译的,并且完全使用ncurses 来确定何时使用颜色;我无法让它转储颜色输出。
lynx -dump somefile.html < <( echo -n qj) > out; cat out 及其变体,但无济于事。只是让你知道这也行不通。所以除非你破解ncurses...但是安装elinks 可能又不那么麻烦了。 ;)