44

我是linux的初学者。请您帮我如何将html页面转换为文本文件。文本文件将从网页中删除所有图像和链接。我只想使用 bash 命令而不是 html 到文本转换工具。例如,我想将第一页谷歌搜索结果转换为“计算机”。

谢谢

4

11 回答 11

46

最简单的方法是使用类似这样的转储(简而言之是可查看 HTML 的文本版本)。

远程文件:

lynx --dump www.google.com > file.txt
links -dump www.google.com

本地文件:

lynx --dump ./1.html > file.txt
links -dump ./1.htm

将字符集转换为 utf8(请参阅):

lynx -dump -display_charset UTF-8 ./1.htm
links -dump -codepage UTF-8 ./1.htm
于 2012-09-14T10:57:53.160 回答
23

您在命令行上有html2text.py 。

用法:html2text.py [(filename|url) [encoding]]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --ignore-links        don't include any formatting for links
  --ignore-images       don't include any formatting for images
  -g, --google-doc      convert an html-exported Google Document
  -d, --dash-unordered-list
                        use a dash rather than a star for unordered list items
  -b BODY_WIDTH, --body-width=BODY_WIDTH
                        number of characters per output line, 0 for no wrap
  -i LIST_INDENT, --google-list-indent=LIST_INDENT
                        number of pixels Google indents nested lists
  -s, --hide-strikethrough
                        hide strike-through text. only relevent when -g is
                        specified as well
于 2012-09-14T10:41:22.300 回答
21

在 OSX 上,您可以使用名为 textutil 的命令行工具将 html 文件批量转换为 txt 格式:

textutil -convert txt *.html
于 2015-09-17T01:24:33.310 回答
9

在 ubuntu/debianhtml2text中是一个不错的选择。http://linux.die.net/man/1/html2text

于 2015-06-17T02:20:27.890 回答
8

您可以获取nodejs并全局安装模块html-to-text

npm install -g html-to-text

然后像这样使用它:

html-to-text < stuff.html > stuff.txt
于 2014-02-17T01:21:33.500 回答
6

使用 sed

sed -e 's/<[^>]*>//g' foo.html
于 2012-09-14T11:01:28.387 回答
3

我使用了python-boilerpipe,到目前为止效果很好......

于 2012-09-15T00:00:59.887 回答
3

我认为链接是最常用的工具。检查 man 链接并搜索纯文本或类似内容。-dump 是我的猜测,也搜索一下。该软件随大多数发行版一起提供。

于 2012-09-14T10:51:17.470 回答
1

本地 htm & html 文件的批处理模式,lynx必需

#!/bin/sh
# h2t, convert all htm and html files of a directory to text 

for file in `ls *.htm`
do
new=`basename $file htm`
lynx -dump $file > ${new}txt 
done
#####
for file in `ls *.html`
do
new=`basename $file html`
lynx -dump $file > ${new}txt 
done
于 2014-09-02T23:46:33.007 回答
0

pandoc工具可以将 HTML转换为纯文本(在其他几种标记格式中),与此处答案中的其他几种工具相比,我更喜欢它格式化文本的方式——它使用大量空格,就像浏览器一样,而不是打包所有内容一起喜欢html2text。您可能想比较一些工具,然后选择一个。要在 Ubuntu 或 Debian 上安装它:

sudo apt install pandoc

它具有从文件读取和写入的选项,但我发现它最容易在管道模式下使用,您只需指定要转换的格式:

curl URL | pandoc -f html -t plain > output.txt
于 2022-01-17T22:50:24.113 回答
0

将 html 页面递归转换为文本文件的 Bash 脚本。适用于 httpd 手册。使 grep -Rhi 'LoadModule ssl' /usr/share/httpd/manual_dump -A 10 工作方便。

#!/bin/sh
# Adapted from ewwink, recursive html to txt dump
# Made to kind of recursively (4 levels) dump the /usr/share/httpd manual to a dump httpd manual directory into a txt dump including dir
# put this script in /usr/share/httpd for it to work (after installing httpd-manual rpm)

for file in ./manual/*{,/*,/*/*,/*/*/*}.html
do
new=`basename $file .html`
mkdir -p ./manual_dump/${new}
lynx --dump $file > ./manual_dump/${new}.txt
done
于 2019-07-03T15:03:04.103 回答