Html 到 ansi 彩色终端文本

Posted

技术标签:

【中文标题】Html 到 ansi 彩色终端文本【英文标题】:Html to ansi colored terminal text 【发布时间】:2011-07-22 00:03:45 【问题描述】:

我在Linux下,我想从网上获取一个html页面,然后在终端上输出。我发现html2text 基本上完成了这项工作,但它将我的html 转换为纯文本,而我最好本着ls --color=auto 的精神将其转换为ansi 彩色文本。有什么想法吗?

【问题讨论】:

【参考方案1】:

elinks 浏览器可以做到这一点。其他文本浏览器,例如 lynxw3m 或许也能做到这一点。

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 来手动重置。【参考方案2】:

w3m browser 支持coloring the output text。

【讨论】:

好吧,lynx 也可以,但我只需要输出页面而不是浏览它。 您不必这样做。 w3m 也有类似 -dump 的选项,elinks 也有。这只是选择您最喜欢的那个的问题。 @davrieb,知道如何让其中一个浏览器转储颜色吗? @sarmold:不是从我的头顶,但是是的。我将在单独的答案中提供详细信息,以便更好地发现。 @davrieb, w3m [0.5.3, 2018] -dump 抑制彩色输出【参考方案3】:

您可以使用 lynx 浏览器使用此命令输出文本。

lynx -dump http://example.com

【讨论】:

知道如何让lynx -dump 也包含颜色吗?至少在我的发行版中,lynx 是针对ncurses 编译的,并且完全使用ncurses 来确定何时使用颜色;我无法让它转储颜色输出。 我尝试了lynx -dump somefile.html < <( echo -n qj) > out; cat out 及其变体,但无济于事。只是让你知道这也行不通。所以除非你破解ncurses...但是安装elinks 可能又不那么麻烦了。 ;)

以上是关于Html 到 ansi 彩色终端文本的主要内容,如果未能解决你的问题,请参考以下文章

如何将彩色文本输出到 Linux 终端?

SpringBoot之彩色输出

Linux终端彩色打印+终端进度条

推荐3个Python 文本终端 GUI 框架,太酷了

Python终端如何输出彩色字体

python终端如何输出彩色字体