📅  最后修改于: 2023-12-03 15:02:09.131000             🧑  作者: Mango
当我们需要处理 HTML 数据时,使用 jq、yq 或 for 命令来进行处理会非常方便快捷。这些命令都是 Shell-Bash 中常用的数据处理工具,让我们可以轻松地对 HTML 数据进行解析、转换和过滤。
jq 是一个命令行 JSON 解析器,也可以用来处理 HTML 格式的数据。它使用灵活的查询语言来选择和修改 JSON 数据,让我们可以方便地从 HTML 中提取需要的信息。
下面是一个使用 jq 提取 HTML 中所有链接元素的示例代码:
$ curl https://www.google.com | jq '.[] | select(.tag == "a") | .attrs.href'
这段代码会返回所有在 Google 首页中的链接元素。
yq 是一个命令行 YAML 解析器,可以方便地将 YAML 数据转换成 JSON 格式。在处理 HTML 数据时,我们可以先将 HTML 转换成 YAML 格式,再使用 yq 命令进行解析。
下面是一个使用 yq 将 HTML 转换成 YAML 格式的示例代码:
$ curl https://www.baidu.com | pup 'body' | python -c 'import yaml,sys; print(yaml.safe_dump(sys.stdin.read()))' | yq .
这段代码会将百度首页中的 HTML 转换成 YAML 格式,方便我们使用 yq 命令进行解析。
for 命令是 Shell-Bash 中的一个循环语句,可以对 HTML 数据进行遍历、过滤和处理。我们可以将 HTML 数据存储在一个变量中,然后使用 for 命令对它进行操作。
下面是一个使用 for 命令提取 HTML 中所有 p 元素的示例代码:
$ curl https://www.baidu.com | pup 'p' | while read line; do echo "$line"; done;
这段代码会返回所有百度首页中的 p 元素。
总之,使用 jq、yq 或 for 命令处理 HTML 数据是非常方便、快捷的,可以大大加快我们的开发效率。如果你还没有尝试过这些命令,不妨在你的下一次项目中试试看吧!