我是linux的初学者。你能帮我解决一下如何将html页面转换为文本文件的问题。文本文件将从网页中删除任何图像和链接。我想只使用bash命令,而不是html文本转换工具。例如,我想将第一页谷歌搜索结果转换为“计算机”。
谢谢
答案 0 :(得分:28)
最简单的方法是使用这样的转储(简称是可查看的html的文本版本)
远程文件
lynx --dump www.google.com > file.txt
links -dump www.google.com
本地档案
lynx --dump ./1.html > file.txt
links -dump ./1.htm
答案 1 :(得分:21)
您在命令行上有html2text。
用法: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
答案 2 :(得分:11)
在OSX上,您可以使用名为textutil的命令行工具将html文件批量转换为txt格式:
textutil -convert txt *.html
答案 3 :(得分:6)
您可以获得nodejs并全局安装模块html-to-text:
npm install -g html-to-text
然后像这样使用它:
html-to-text < stuff.html > stuff.txt
答案 4 :(得分:5)
是一个很好的选择。 http://linux.die.net/man/1/html2text
答案 5 :(得分:4)
使用sed
sed -e 's/<[^>]*>//g' foo.html
答案 6 :(得分:3)
我认为链接是最常用的工具。检查man链接并搜索纯文本或类似文本。 -dump是我的猜测,也在寻找它。该软件附带大多数发行版。
答案 7 :(得分:2)
我使用python-boilerpipe并且效果非常好,到目前为止......
答案 8 :(得分:1)
本地htm&amp;的批处理模式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
答案 9 :(得分:0)
Bash脚本可将html页面递归转换为文本文件。 应用于httpd-manual。 使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