python xpath模块安装_python中实现XPath的lxml模块

lxml是一个HTML/XML的解析器,主要功能是解析和提取数据,在解析HTML的时候,如果HTML代码不规范,该模块会自动补全。

使用pip install lxml安装模块

1、导入模块

from lxml import etree

2、解析文件或字符串为HTML文档并返回

etree.parse(filename,parser=None)

加载指定文件内容并使用parser指定的解析器解析,默认使用XML解析器

myparser=etree.HTMLParser(encoding="utf-8")

etree.HTMLParser方法返回HTML解析器

设置parser=myparser表示使用HTML解析器

etree.HTML(str)

将字符串解析为HTML文档

3、使用etree.tostring()方法把解析的文档转换为字符串

etree.tostring(html,encoding='utf-8').decode('utf-8')

4、使用解析对象的xpath(xpath_str)方法使用XPath语法选取所需内容

该方法返回一个list,包含所有选取到的节点

例如现在要获取demo.html文档的第3、4个ul中的所有a标签的href值和文本值

parser=etree.HTMLParser(encoding='utf-8')

html = etree.parse('demo.html',parser=parser)

res=html.xpath('//ul[position()>2 and position()<5]')

#选取第3、4个ul节点

for re in res:

href=tr.xpath('.//a/@href')[0]

#或者使用get()方法获取指定属性值

href=tr.xpath('.//a')[0].get('href')

#前面不加点(.)会在整个html中查找

#如果a标签是子标签可以使用'a/@href'或者'./a/@href'

cont=re.xpath('.//a/text()')[0]

#循环获取ul子孙节点a标签的href属性值和文本值

最后编辑:2020-04-07作者:qingheluo

5aea90233e4bbc88135a027c2de2596a.png

这个作者貌似有点懒,什么都没有留下。

你可能感兴趣的:(python,xpath模块安装)