Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

突然有个想法,想直接下载 html 文件并将里面的 meta 标签都拿出来,于是便去翻 Google 了。

xmllint 命令是 libxml 附带的工具(GNOME libxml2)。
其中一个用法是通过 --xpath 来选择输出对应的元素。
而 XPath(XML Path Language)是一个设计来查询 xml 内容的语言,可以在对应的维基页面查看描述。

一个简单的用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -s 'https://www.youtube.com/watch?v=973sEAQZKzY' | xmllint --html --xpath /html/head/meta -

# Outputs:
# <meta charset="UTF-8"/>
# <meta name="ResourceLoaderDynamicStyles" content=""/>
# <meta name="generator" content="MediaWiki 1.43.0-wmf.26"/>
# <meta name="referrer" content="origin"/>
# <meta name="referrer" content="origin-when-cross-origin"/>
# <meta name="robots" content="max-image-preview:standard"/>
# <meta name="format-detection" content="telephone=no"/>
# <meta name="viewport" content="width=1120"/>
# <meta property="og:title" content="XPath - Wikipedia"/>
# <meta property="og:type" content="website"/>

需要注意,在对 html 使用的时候,需要加上 --html 参数。xmllint 会通过 stderr 输出原 html 里有问题的地方,可以按需忽略。

如此整齐的输出,可以在后面接诸如 sed、tr、awk、grep 之类的文本流处理命令了。

评论