如何使用bash提取没有标签的网页来源?
How to extract the source of a webpage without tags using bash?
我们可以使用 wget
或 curl
下载页面源,但我想提取没有标签的页面源。
我的意思是将其提取为文本。
创建一个 Ruby 脚本,使用 Nokogiri 解析 HTML:
require 'nokogiri'
require 'open-uri'
html = Nokogiri::HTML(open '
text = html.at('body').inner_text
puts text
Source
如果您更习惯使用 Javascript 或 Python 或搜索 html-to-text 实用程序,那么使用 Javascript 或 Python 可能会很简单。我想纯粹在 bash.
中做到这一点是非常困难的
另请参阅:bash command to covert html page to a text file
使用 Curl、Wget 和 Apache Tika Server(本地),您可以直接从命令行将 HTML 解析为简单文本。
首先,您必须从 Apache 站点下载 tika-server jar:
https://tika.apache.org/download.html
然后,运行它作为一个本地服务器:
$ 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
那应该return没有标签的网页文字。
这样您就可以使用 wget 下载所需的网页并将其保存到 "test.html",然后您可以使用 curl 向 tika 服务器发送请求以提取文本。请注意,有必要发送 header "Accept: text/plain" 因为 tika 可以 return 多种格式,而不仅仅是纯文本。
您可以通过管道传输到一个简单的 sed 命令:
curl www.gnu.org | sed 's/<\/*[^>]*>//g'
我们可以使用 wget
或 curl
下载页面源,但我想提取没有标签的页面源。
我的意思是将其提取为文本。
创建一个 Ruby 脚本,使用 Nokogiri 解析 HTML:
require 'nokogiri'
require 'open-uri'
html = Nokogiri::HTML(open '
text = html.at('body').inner_text
puts text
Source
如果您更习惯使用 Javascript 或 Python 或搜索 html-to-text 实用程序,那么使用 Javascript 或 Python 可能会很简单。我想纯粹在 bash.
中做到这一点是非常困难的另请参阅:bash command to covert html page to a text file
使用 Curl、Wget 和 Apache Tika Server(本地),您可以直接从命令行将 HTML 解析为简单文本。
首先,您必须从 Apache 站点下载 tika-server jar: https://tika.apache.org/download.html
然后,运行它作为一个本地服务器:
$ 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
那应该return没有标签的网页文字。
这样您就可以使用 wget 下载所需的网页并将其保存到 "test.html",然后您可以使用 curl 向 tika 服务器发送请求以提取文本。请注意,有必要发送 header "Accept: text/plain" 因为 tika 可以 return 多种格式,而不仅仅是纯文本。
您可以通过管道传输到一个简单的 sed 命令:
curl www.gnu.org | sed 's/<\/*[^>]*>//g'