使用HTMLq从html文件中提取内容/数据

从JSON文档检索数据时,请使用jq命令。Jq命令有助于快速提取JSON的数据。这样,您就可以认为有快速搜索、拆分、过滤和提取HTML页面数据的命令。可以想象Sed/awk/grep等常用命令。现在,您可以使用htmlq命令执行此操作。

HTMLq与jq类似,但用于html。使用CSS选择器从HTML文件中提取所需的内容/数据/片段。CSS选择器是用于定位要导入的数据的HTML元素。例如,可以使用htmlq命令提取图像或a元素的URL属性。只需将CSS选择传递给htmlq命令即可。

本教程演示如何使用HTMLq检索、拆分、筛选和提取html文件中的内容或数据。包括在Linux/Mac OS/Windows上安装htmlq、将HTMLq添加到环境变量PATH、使用CSS ID选择器拆分html片段、使用CSS属性选择器提取属性值、使用类名选择器提取文本、设置输出格式以及强调语法。

安装htmlq

安装Htmlq最简单的方法是从Github下载预编写的二进制可执行文件。使用此方法安装htmlq命令。编写本教程时,最新版本的htmlq命令为v0.4.0。如果需要更改Htmlq版本,可以将v0.4.0更改为所需的数字。

运行以下wget命令下载htmlq命令,通过管道发送tar命令,并解压缩tar.gz归档文件:

wget-q-o-https://github . com/mgdm/htmlq/releases/download/v 0 . 4 . 0/htmlq-x86 _

下载完成后解压后,可以使用当前工作目录中的以下命令运行htmlq以查看是否可用:

./htmlq-帮助

这将输出类似于以下内容的htmlq帮助文档:

Htmlq 0.4.0

Michael Maclean michael@mgdm.net

Html中的runs CSS selectors

USAGE:

htmlq[flags][options][-][selector]。

FLAGS:

-b,-detect-base try to detect the base URL from the base tag in the document . if not found,default to

The value of-base,if supplied

-h,-帮助打印信息帮助

-w、-ignore-white space when printing text nodes、ignore those that consist entirely of white space

-p、-pretty pretty-print the serialised output

-t,-text output only the contents of text nodes inside selected elements

-v、-version prints version information

选项:

-a,-attribute attribute only return this attribute(if present)from selected elements

-b,-base base use this URL as the base for links

-f,-filename file the input file . defaults to stdin

-o,-output file the output file . defaults to stdout

-r、-remove-nodes selector . remove nodes matching this expression before output . may be specified multiple

蒂茅斯

ARGS:

selector . the CSS expression to select[default:html]

当前,htmlq命令仅在当前目录中运行。如果需要全局,并且不需要指定运行htmlq的完整路径,则可以将htmlq命令的路径添加到环境变量PATH中,或将htmlq命令移动到环境变量PATH中包含的目录中。

使用最后一种方法,将htmlq命令移动到/usr/bin/目录。通过运行以下mv命令移动htmlq:

Sudo mv htmlq /usr/bin

htmlq安装现已完成。以下是htmlq命令的一些示例。

使用CSS ID选择器提取片段

以下命令通过curl命令下载rust官方网站主页HTML页,通过管道|传递给htmlq命令,并指定CSS选择器#get-help。运行以下命令:

curl-silent https://www . rust-lang . org/| htmlq ‘ # get-help ‘

输出类别如下:

Div类=flex flex-column mw8w-100 measure-wide-l pv2 pv5-m pv2-NSP H4-m ph4-l-id

H4get帮助!/h4

Ul

lia href=www . my freax . com/learn/documentation/a/Li

lia href=forge . rust-lang . org forge(contributor documentation)/a/Li

lia href=users . rust-lang . org=ask a question on the users forum/a/Li

/ul

Div类=’ languages ‘

label class=’ hidden ‘ for=’ language-footer ‘ language/label

Select id=’language-footer ‘

option title=English(en-us)’ value=’ en-us ‘ English(en-us)/option

option title=espa ol(es)’ value=espa ol(es)/option

option title=franais(fr)’ value=franais(fr)/option

option title=’ italiano(it)’ value=’ it ‘ italiano(it)/option

Option title=’日语(ja)’值=’ ja ‘日语(ja)/option

option title=portugus(pt-br)’ value=’ pt-br ‘ portugus(pt-br)/

Option title=’ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘。3

option title=rke(tr)’ value=rke(tr)/option

Option title=’简体中文(KH-cn)’ value=’ KH-cn ‘简体中文(KH-cn)/option

Option title=’中文(zh-tw)’值=’ zh-tw ‘中文(zh-TW)/option

/select

/div

/div

使用时的curl命令-silent选项是可选的。如果未传递此选项,curl将打印进度输出,并在htmlq命令的结果中找到。内容如下:

% total % received % xferd average speed time current

Dload Upload Total Spent Left Speed

100 19392 100 19392 0 4698 0 0:00:04 0:00:04-:-4698

.

使用CSS属性选择器提取href值

要在html页面中提取/查找元素的属性值,可以在HTMLq中指定-属性选项,然后指定HTML元素的名称和该元素属性的名称。例如,在HTML页面上搜索/提取所有a元素href属性。运行以下命令:

curl-silent https://www . rust-lang . org/| htmlq-attribute href a

这将输出所有html页面上所有A元素的href属性,即页面上所有可跳转的链接。内容类似于以下内容:

/

/tools/install

/learn

/tools

/governance

/community

/learn/get-started

.

使用CSS class类名选择器提取文本

必须提取指定元素及其下面的子元素的文本。您可以为Htmlq指定-text选项,然后指定CSS选择器并将其放置在该元素中。例如,CSS class类名称选择器。要获取Main元素及其子元素下的所有文本,请运行以下命令:

curl-silent https://nixos . org/nixos/about . html | htmlq-text . main

输出不包含HTML中的元素标记,只保留文本。这是。

About NixOS

nix OS is a GNU/Linux distribution that aims to

improve the state of the art in system configuration management . in

Existing distributions,actions such as upgrades are dangerous:

upgrading a package can cause other packages to break,upgrading an

entire system is much less reliable than reinstalling from scratch,

you can ‘ t safely test what the results of a configuration change will

Be,you cannot easily undo changes to the system,and so on.we want

to changet hat . nix OS has many innovative features:

[。]

在输出之前移除指定节点

如果需要从提取的数据或截断的HTML片段中删除不必要的元素,可以在htmlq命令中指定-remove-nodes选项。此选项在CSS选择器之后添加要从中删除节点的CSS选择器。例如:要从Whynix类名选择器中删除所有SVG元素/节点,请运行以下命令:

$ curl-silenthttps://nixos.org/|。/target/debug/htmlq。Whynix ‘-remove-node

输出不包含SVG元素。

Ul class=’whynix ‘ ‘

H2Reproducible/h2

P.

nix builds packages in isolation from each other . this ensures that they

are reproducible and don have undeclared dependencies,so strong if a

Package works on one machine,it will also work on another/strong .

/p

/li

H2Declarative/h2

P.

nix makes it strong trivial to share development and build

environments/strong for your projects,regardless of what programming

Languages and tools you’re using。

/p

/li

H2Reliable/h2

P.

nix ensures that installing or upgrading one package strong cannot

break other packages/strong . it allows you to strong roll back to

Previous versions/strong,and ensures that no package is in an

调试和升级一致状态。

/p

/li

/ul

格式化HTML输出

除了从HTML页面提取数据、元素、属性和片段外,Htmq还可以设置HTML片段的格式。例如,以下命令指定输出选择器#posts元素片段的输出格式。运行以下命令:

curl-silent https://mgdm . net | htmlq-pretty ‘ # posts ‘

区段id=’ posts ‘

H2I write about。

/h2

Ul class=’post-list ‘

time date time=’ 2019-04-29 00:% I:1556496000 ‘ pubdate=’ ‘

29/04/2019/timea href=”https://www.myfreax.com/learn”

H3 debugging network connections on MAC OS with nettop

/h3/a

pusing nettop to find out what network connections a program is trying to make。

/p

/li

[。]

HTML语法高亮

Bat命令是语法加亮命令。终端可以突出显示几乎所有语言的语法和关键字。让你更容易看到数据和语法。Htmlq命令的结果将写入标准输出,因此可以通过管道将htmlq命令的结果传递给bat命令,以突出显示HTML段关键字/语法/属性等。

例如,使用HTMLq提取body元素的所有内容,包括html标签、属性等。也就是说,如果通过bat命令(而不仅仅是文本)突出显示了HTML语法,请运行以下命令:

curl-silent example . com | htmlq ‘ body ‘ | bat-language html

结论

到目前为止,您已经熟悉htmlq提取、搜索、裁剪、切片、HTML页面上的数据和内容删除。如果需要更多帮助,请运行HTMLQ-帮助以获得帮助。如果有疑问,请随时反馈评论。

Linux

Command

Htmlq

爬行动物

LINUX

如何在Linux上创建zip压缩文件归档文件

2022-9-19 22:00:36

LINUX

如何在Androot Studio Anroid Android模拟器中激活根

2022-9-22 9:00:42

搜索