使用bash提取不带标记的网页源

使用bash提取不带标记的网页源,bash,curl,tags,extract,wget,Bash,Curl,Tags,Extract,Wget,我们可以使用wget或curl 但是我想提取不带标记的页面源代码,我的意思是像文本一样提取它创建一个使用Nokogiri解析HTML的Ruby脚本: require 'nokogiri' require 'open-uri' html = Nokogiri::HTML(open 'https://stackoverflow.com/questions/6129357') text = html.at('body').inner_text puts text 如果您对Javascript或

我们可以使用
wget
curl

但是我想提取不带标记的页面源代码,我的意思是像文本一样提取它

创建一个使用Nokogiri解析HTML的Ruby脚本:

require 'nokogiri'
require 'open-uri'
html = Nokogiri::HTML(open 'https://stackoverflow.com/questions/6129357')

text  = html.at('body').inner_text
puts text

如果您对Javascript或Python更熟悉,那么使用Javascript或Python可能很简单,或者搜索html到文本的实用程序。我想纯粹在bash中实现这一点是非常困难的


另请参见:

使用Curl、Wget和apachetika服务器(本地),您可以直接从命令行将HTML解析为简单文本

首先,您必须从Apache站点下载tika服务器jar:

然后,将其作为本地服务器运行:

$ java -jar tika-server-1.12.jar
之后,您可以使用以下url开始解析文本:

现在,将网页的HTML解析为简单文本:

 $ wget -O test.html YOUR-HTML-URL && curl -H "Accept: text/plain" -T test.html http://localhost:9998/tika
应该返回没有标签的网页文本


通过这种方式,您可以使用wget下载所需的网页并将其保存到“test.html”,然后使用curl向tika服务器发送请求以提取文本。请注意,有必要发送标题“Accept:text/plain”,因为tika可以返回多种格式,而不仅仅是纯文本。

您可以通过管道发送到一个简单的sed命令:

curl www.gnu.org | sed 's/<\/*[^>]*>//g'
curl www.gnu.org | sed's/]*>///g'

可能重复我说过的“使用Bash”不是rubygood luck,只使用Bash:)–请参阅我的编辑和另一篇文章的链接