jq 选择器:轻松提取 HTML 元素中的文本和属性139


简介

jq 是一个命令行 JSON 解析器,它提供了一组强大的选择器,可以轻松地从 JSON 文档中提取特定数据。本文将重点介绍 jq 的 a 标签选择器,它允许用户从 HTML 文档中提取锚点 (<a>) 元素中的内容。

语法

jq a 标签选择器采用以下语法:jq 'a'

此选择器将匹配文档中的所有 a 标签。

提取内容

要从 a 标签提取文本内容,可以使用 text 函数。例如:jq 'a | text'

此命令将输出所有 a 标签中显示的文本。

示例


考虑以下 HTML 代码:<a href="">示例链接</a>
<a href="">另一个链接</a>

要提取这两个链接的文本内容,我们可以使用以下 jq 命令:html | jq 'a | text'

这将输出:示例链接
另一个链接

提取属性

除了提取文本内容外,jq 还允许您提取 a 标签的属性。为此,可以使用 attr 函数。例如:jq 'a | attr("href")'

此命令将输出所有 a 标签的 href 属性值。

示例


对于前面的 HTML 代码,要提取两个链接的 href 属性,我们可以使用以下命令:html | jq 'a | attr("href")'

这将输出:

其他选择器修饰符

jq 提供了各种选择器修饰符,用于进一步限制匹配。例如:* .class:匹配具有指定类名的 a 标签。
* :contains(text):匹配包含指定文本内容的 a 标签。
* :eq(index):匹配具有指定索引的 a 标签。

示例


对于下面的 HTML 代码:<a class="link-1" href="">示例链接</a>
<a class="link-2" href="">另一个链接</a>

要提取具有 link-1 类的 a 标签的文本内容,我们可以使用以下命令:html | jq '-1 | text'

这将输出:示例链接

高级用法

除了基本用法外,jq 还允许您执行更高级的提取。例如:* 嵌套选择器:使用嵌套选择器可以从 HTML 文档中深度提取数据。例如,要获取所有 a 标签中的所有图像 (<img>) 元素的 src 属性,可以使用以下命令:
html | jq 'a | .img | attr("src")'

* 管道操作:jq 可以与其他命令行工具配合使用。例如,要将提取的链接列表保存到文件中,可以使用以下命令:
html | jq 'a | .href' | sort | uniq >

* 正则表达式:jq 支持正则表达式,允许您根据模式匹配提取数据。例如,要获取所有以 .com 结尾的链接的 href 属性,可以使用以下命令:
html | jq 'a | select(.href | test(".+\\.com$")) | .href'


jq 的 a 标签选择器是一个强大的工具,可以轻松地从 HTML 文档中提取文本内容和属性。通过利用选择器修饰符、嵌套选择器、管道操作和正则表达式,您可以执行高级提取任务,从而从 HTML 文档中获取有价值的数据。

2024-11-11


上一篇:交换友链助力网站优化:一中官网友情链接指南

下一篇:揭秘a标签隐藏技巧:提升网站美观与SEO效能