Python解析库lxml与xpath用法总结

作者&投稿:夫晏 (若有异议请与网页底部的电邮联系)
~

本文主要围绕以xpath和lxml库进行展开:

一、xpath 概念、xpath节点、xpath语法、xpath轴、xpath运算符

二、lxml的安装、lxml的使用、lxml案例


一、xpath

1.xpath概念

XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式在 XML 文档中进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。


2.xpath节点

xpath有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

节点关系:父、子、兄弟、先辈、后辈。


3.xpath语法

xpath语法在W3c网站上有详细的介绍,这里截取部分知识,供大家学习。

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:


谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:


XPath 通配符可用来选取未知的 XML 元素。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:


通过在路径表达式中使用"|"运算符,您可以选取若干个路径。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:


4.xpath 轴

轴可定义相对于当前节点的节点集。


5.xpath运算符

下面列出了可用在 XPath 表达式中的运算符:

好了,xpath的内容就这么多了。接下来我们要介绍一个神器lxml,他的速度很快,曾经一直是我使用beautifulsoup时最钟爱的解析器,没有之一,因为他的速度的确比其他的html.parser 和html5lib快了许多。


二、lxml

1.lxml安装

lxml 是一个xpath格式解析模块,安装很方便,直接pip install lxml 或者easy_install lxml即可。


2.lxml 使用

lxml提供了两种解析网页的方式,一种是你解析自己写的离线网页时,另一种 则是解析线上网页。

导入包:


1.解析离线网页:

2.解析在线网页:

那么我们怎么获取这些标签和标签对应的属性值了,很简单,首先获取标签只需你这样做:

然后我们可以,比方说,你要获取a标签内的文本和它的属性href所对应的值,有两种方法,

1.表达式内获取

2.表达式外获取

这样就完成了获取,怎么样,是不是很简单了,哈哈哈。


下面再来lxml的解析规则:



3.lxml案例

为了偷懒,我决定还是采用urllib那篇文章的代码,哈哈哈,机智如我。




分享!5个好用的Python工具
3、Theano Theano是一个较老牌和稳定的机器学习python库之一,虽然目前使用的人数有所下降。但它毕竟是一个祖师级的存在,一定有它的优点所在。Theano基于Python擅长处理多维数组,属于比较底层的框架,theano起初也是为了深度学习中大规模人工神经网络算法的运算所设计,我们可利用符号化式语言定义想要的结果,...

如何用python做一个系统?
python实现了一个十分简单的学生信息管理系统,只是一个简单的雏形,没有放入数据库,只是写入txt文件,可以当作一个入门学习。实现了录入、查找、删除、修改学生信息和排序、统计学生人数以及显示学生信息的功能。 Python是一种广泛使用的解释型、高级和通用的编程语言。[1]Python由荷兰数学和计算机科学研究学会的GuidovanRos...

python安装第三方库?
5、你不仅可以进行日期时间的查询和变换,还可以对日期时间进行运算。通过这些标准库,还可以根据需要控制日期时间输出的文本格式。6、在Linux&Mac下,我们查到的很可能是软链接形式,它并不是安装的实际路径,但我们可以通过ls-l命令找到其指向的文件路径。在python中安装第三方class类的命令是ppinstitute1...

我需要 Python数据分析实战,有这个的百度网盘资源吗?
Python数据分析实战百度网盘在线观看资源,免费分享给您:https:\/\/pan.baidu.com\/s\/1ug7JEA4LEybgtP6gEMNFVA 提取码:1234 主要内容包括Python语法基础、Python程序结构、Python基本数据类型、函数与异常处理、常见标准库操作、文件操作、数据库操作、Numpy库、Pandas库、数据可视化等内容。本书内容充实、...

在idel中怎么使用biopython库?可以使用吗?一定要用Python吗?
按照python2安装的流程,使用python3再安装一遍,但是要注意,安装过程中,需要把python这个命令换成python3!

使用python的sympy解符号方程组后,如何将结果带入之后的符号表达式...
Sympy是python中非常强大的符号运算库,可以以书写习惯表示数学表达式。下面介绍用Sympy求方程数值解的方法。下面代码全部在 from sympy import init_printing(use_unicode=True) # 按书写习惯输出 下运行。数学表达式的输入 首先声明符号:x = symbols('x')即计算机中的变量x代表数学表达式中的x。在后文...

python IDEL复制上一行的快捷键是什么
1、新建一个python脚本文件file.py(名字任意)。2、在python脚本中用2个open函数即可实现对该图片的复制,具体实现代码如图。3、执行上述脚本文件后查看结果,可以看到该图片已被成功复制。4、对于其他文件例如,文本文件操作方式和上面一样,下图是复制11.txt成功的实际例子。以上文件操作都需要注意文件的...

python中的参数传递有多少种(2023年最新分享)
在Python对象及内存管理机制中介绍了python中的参数传递属于对象的引用传递(passbyobjectreference),在编写函数的时候需要特别注意。先来看个例子:执行结果:l1和l2指向相同的地址,由于列表可变,l1改变时,l2也跟着变了。接着看下面的例子:结果:l1没有变化!为什么不是[1,2,3,4]呢?l=l+[4]...

python的pillow库怎么使用
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】 向TA提问 关注 展开全部 Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像...

python面试一般问多少个技术问题
但是线程库不会让你使用额外的CPU核心。 多线程可以外包到操作系统(通过多处理),一些调用Python代码的外部应用程序(例如,Spark或Hadoop),或者Python代码调用的一些代码例如:你可以使用你的Python代码调用一个C函数来完成昂贵的多线程事务。 2、这段代码输出了什么: deff(x,l=[]):foriinrange(x):l.append(i*i...

九龙坡区17164941404: python中的beautifulsoup和xpath有什么异同点 -
典习柯力: 1 性能 lxml >> BeautifulSoup BeautifulSoup和lxml的原理不一样,BeautifulSoup是基于DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多.而lxml只会局部遍历,另外lxml是用c写的,而BeautifulSoup是用python写的,...

九龙坡区17164941404: 什么是python url解析器 -
典习柯力: python标准库中有个url解析库,叫【urlparser】,它的作用是解析给定的url,并返回一个6-tuple,类型是ParseResult(scheme, netloc, path, params, query, fragment) 在爬虫方面是很有用的

九龙坡区17164941404: python如何解析xml格式的字符串,最好解析成键值对的那种, -
典习柯力: 有现成的库可以用,xml.etree.ElementTree,或者xml.dom.minidom,ET相对来说简单一些,而minidom配上node缓存也是一种不错的实现,原理都一样,就是把xml先转化为dom树.这两个库可以参考官方文档,xml以及dom树可以参考w3school

九龙坡区17164941404: python html 解析工具是什么意思 -
典习柯力: 在准备我的 PyCon上关于HTML的演讲 的时候我觉得我应该对现有的一些解析器和文档模型做个性能对比.实际上,情况有点复杂,因为处理HTML需要几个步骤:解析这个 HTML 把它解析为一个对象(比如一个文档对象) 把它序列化 有些...

九龙坡区17164941404: python怎么安装lxml html 解析器 -
典习柯力: lxml是Python中与XML及HTML相关功能中最丰富和最容易使用的库.lxml并不是Python自带的包,而是为libxml2和libxslt库的一个Python化的绑定.它与众不同的地方是它兼顾了这些库的速度和功能完整性,以及纯Python API的简洁性,与大家熟...

九龙坡区17164941404: Python 常用的标准库以及第三方库有哪些 -
典习柯力: 标准库Python拥有一个强大的标准库.Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能.Python标准库的...

九龙坡区17164941404: 如何使用lxml.html处理网页 -
典习柯力: Python里常用的网页解析库有BeautifulSoup和lxml.html,其中前者可能更知名一点吧,熊猫开始也是使用的BeautifulSoup,但是发现它实在有几个问题绕不过去,因此最后采用的还是lxml: 1. BeautifulSoup太慢.熊猫原来写的程序是需要提取不定...

九龙坡区17164941404: 如何使用xml解析啊?python中lxml是不是不能用 -
典习柯力: 可以使用xml.dom.minidom模块 import xml.dom.minidom as dd cdb = dd.parse("GAC_ExCAN.xml") nd = cdb.getElementsByTagName('Node')

九龙坡区17164941404: 用python读取xml<></>之间的内容并修改 -
典习柯力: python是有相关的解析html格式的模块的 可以识别出标签,简单的处理文件你可以用Beautiful Soup模块,想做大一些的爬虫可以使用scrapy框架的xpath语法来锁定标签.这里引用下官方说明:Beautiful Soup提供一些简单的、python式的函数用...

九龙坡区17164941404: python 最好的 网页分析库 有哪些 -
典习柯力: 1.Beautiful Soup在java里用过,还成,偶尔解析不到. 简单.2.python自带了一个SGML的解析.那个小模块略略改一改应该很好用的.我以前用它做过畸形校正模块.效率一般.3.大多数情况下我都是用re库,正则表达式直接解析,简单直接易用.用好了速度最快.经常用来搭建服务端的高效处理过滤器.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网