温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Xpath工具与 lxml 库

发布时间:2022-01-14 09:34:49 来源:亿速云 阅读:154 作者:柒染 栏目:大数据

这篇文章主要为大家分析了如何使用Xpath工具与 lxml 库的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何使用Xpath工具与 lxml 库”的知识吧。

小编介绍的是内容提取的工具 —— Xpath,它一般和 lxml 库搭配使用。

1 Xpath 和 lxml

  • Xpath

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力。

Xpath 原本是用于选取 XML 文档节点信息。XPath 是于 1999 年 11 月 16 日 成为 W3C 标准。因其既简单方便又容易,所以它逐渐被人说熟知。

  • lxml

lxml 是功能丰富又简单易用的,专门处理 XML 和 HTML 的 Python 官网标准库。

2 Xpath 的语法

正则表达式的枯燥无味又学习成本高,Xpath 可以说是不及其万分之一。所以只要花上 10 分钟,掌握 Xpath 不在话下。Xpath 的语言以及如何从 HTML dom 树中提取信息,我将其归纳为“主干 - 树支 - 绿叶”。

2.1 “主干” —— 选取节点

抓取信息,我们需知道要从哪里开始抓取。因此,需要找个起始节点。Xpath 选择起始节点有以下可选:

如何使用Xpath工具与 lxml 库

我们通过以下实例来了解其用法:

如何使用Xpath工具与 lxml 库

如果你对于提取节点没有头绪的时候,可以使用通配符来暂时替代。等查看输出内容之后再进一步确认。

如何使用Xpath工具与 lxml 库

2.2 “分支” —— 关系节点与谓语

这一步的过程其实是通过起点一步步来寻找最终包含我们所需内容的节点。我们有时需要使用到相邻节点信息。因此,我们需要了解关系节点或者谓语。

  • 关系节点

一般而言,DOM 树中一个普通节点具有父节点、兄弟节点、子节点。当然也有例外的情况。这些有些节点比较特殊,可能没有父节点,如根节点;也有可能是没有子节点,如深度最大的节点。Xpath 也是有支持获取关系节点的语法。

如何使用Xpath工具与 lxml 库

  • 谓语

谓语用来查找某个特定的节点或者包含某个指定的值的节点。同时,它是被嵌在方括号中的。

如何使用Xpath工具与 lxml 库

2.3”绿叶” —— 节点内容以及属性

到了这一步,我们已经找到所需内容的节点了。接下来就是获取该节点中的内容了。Xpath 语法提供了提供节点的文本内容以及属性内容的功能。

如何使用Xpath工具与 lxml 库

具体用法见以下实例:

如何使用Xpath工具与 lxml 库

3 lxml 的用法

3.1 安装 lxml

pip 是安装库文件的最简便的方法,具体命令如下:

如何使用Xpath工具与 lxml 库

3.2 使用 lxml

lxml 使用起来是比较简单的。我们首先要使用 lxml 的 etree 将 html 页面进行初始化,然后丢给 Xpath 匹配即可。具体用法如下:

如何使用Xpath工具与 lxml 库

没错,就这短短几行代码即可完成信息提取。
值得注意的是:xpath 查找匹配返回的类型有可能是一个值,也有可能是一个存放多个值的列表。这个取决于你的路径表达式是如何编写的。

关于“如何使用Xpath工具与 lxml 库”就介绍到这了,更多相关内容可以搜索亿速云以前的文章,希望能够帮助大家答疑解惑,请多多支持亿速云网站!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI