con*_*fin 23 shell text-processing html
我有几百个 html 源代码文件。我需要<div>从这些文件中的每一个中提取特定元素的内容,因此我将编写一个脚本来遍历每个文件。元素结构是这样的:
<div id='the_div_id'>
<div id='some_other_div'>
<h3>Some content</h3>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种方法,通过该方法我可以the_div_id使用 linux 命令行从文件中提取 div以及所有子元素和内容吗?
Ste*_*n D 29
在HTML-XML-utils的包,在大多数主要Linux发行版,拥有一批具有HTML和XML文档打交道时非常有用的工具。对于您的情况特别有用的是hxselect,它从标准输入中读取并根据 CSS 选择器提取元素。您的用例如下所示:
hxselect '#the_div_id' <file
Run Code Online (Sandbox Code Playgroud)
根据您提供的内容,您可能会收到有关输入格式不正确的投诉。这种抱怨是针对标准误差的,因此可以在需要时轻松抑制。另一种方法是使用 Perl 的 HTML::PARSER 包;但是,我会将其留给具有 Perl 技能的人比我自己的还少。
小智 13
Try pup,一个用于处理 HTML 的命令行工具。例如:
pup '#the_div_id' < file.html
Run Code Online (Sandbox Code Playgroud)