我使用Linux,想要从网上获取一个HTML页面并在终端上输出它。我发现html2text
可以做到这一点,但它会将我的HTML转换成纯文本,而我更希望将其转换为类似于ls --color=auto
的ANSI彩色文本。有什么好的想法吗?
我使用Linux,想要从网上获取一个HTML页面并在终端上输出它。我发现html2text
可以做到这一点,但它会将我的HTML转换成纯文本,而我更希望将其转换为类似于ls --color=auto
的ANSI彩色文本。有什么好的想法吗?
elinks
浏览器可以实现此功能。其他文本浏览器,如lynx
或w3m
也可能能够实现。
elinks -dump -dump-color-mode 1 http://example.com/
以上示例提供了一个使用16种颜色的文本版本http://example.com/
。根据需要,输出格式可以进一步自定义。
-dump
选项启用转储模式,它只会以文本形式打印整个页面,并以一种“电子邮件样式”打印链接目的地。
-dump-color-mode 1
启用使用16种基本终端颜色对输出进行着色。根据值和终端仿真器的功能,这可以高达~16百万(True Color)。这些值在elinks.conf(5)中有文档记录。
用于输出的颜色也可以进行配置,这同样在elinks.conf(5)中有文档记录。
您可以使用lynx浏览器通过此命令输出文本。
lynx -dump http://example.com
lynx -dump
输出的内容也包含颜色?至少在我的发行版上,lynx
是编译在 ncurses
上的,并完全使用 ncurses
来决定何时使用颜色;我无法让它输出带颜色的结果。 - sarnoldlynx -dump somefile.html < <( echo -n qj) > out; cat out
以及其他变体,但都没有成功。只是想让你知道这也不起作用。所以除非你破解 ncurses
……但是安装 elinks
可能又会少些麻烦。;) - anon
elinks
不会自动重置终端颜色,这会导致后续输出(从脚本或终端)与elinks
输出的结尾颜色相同,直到遇到新的颜色代码为止。在elinks
之后手动执行tput sgr0
以进行重置。 - Marijn