使用bash提取没有标签的网页源

时间:2016-03-03 16:13:00

标签: bash curl tags extract wget

我们可以使用wgetcurl下载页面来源 但我想提取没有标签的页面源,我的意思是像文本一样提取它

3 个答案:

答案 0 :(得分:2)

您可以使用简单的sed命令:

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

答案 1 :(得分:1)

使用Curl,Wget和Apache Tika Server(本地),您可以直接从命令行将HTML解析为简单文本。

首先,您必须从Apache站点下载tika-server jar: https://tika.apache.org/download.html

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

$ java -jar tika-server-1.12.jar

之后,您可以使用以下URL开始解析文本:

http://localhost:9998/tika

现在,要将网页的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可以返回多种格式,而不仅仅是纯文本。

答案 2 :(得分:0)

创建一个使用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

Source

如果您对此更熟悉,或者搜索html-to-text实用程序,那么使用Javascript或Python可能会很简单。我想在纯粹的bash中这样做是非常困难的。

另请参阅:bash command to covert html page to a text file