[分章:代码知识]python xpath使用方法

发布时间:2024-01-23 09:26:03

extree xpath解析HTML库

作用:通过xpath解析html数据;需要安装pip install lxml

注意:完整xpath路径可以在网页鼠标右键检查目标文本,而后右键复制xpth路径

示例:

from lxml import etree

with open('123.html',mode='r',encoding='utf-8') as f:

????str1 = f.read()

tree = etree.HTML(str1) # 导入本地HTML文档

str = tree.xpath('//div[@class="index-left"]') ??# 使用xpath表达式定位标签,返回为对象;'//'表示多个层级,可以从任意层级开始查找;'@class=""'为属性定位

tree.HTML() 实例化HTML文本

用于将HTML文本实例化成extree对象,方便进行xpath数据分析。

tree.xpath 标签定位

用于标签定位;

使用xpath表达式定位标签,返回为对象;

注意:完整xpath路径可以在网页鼠标右键检查目标文本,而后右键复制xpth路径

xpth语法:

'//'表示多个层级,可以从任意层级开始查找;

//*[@id="header"]为从id=header标签开始查找

[@id="header]为属性定位,进一步定位指定标签;

/a[1]为xpath内的索引,xpath的索引是从1开始的;括号外的[1]索引为list索引,和xpath无关;

@src为查找所有属性为src的标签

//text()读取标签文本

示例:

from lxml import etree

with open('123.html',mode='r',encoding='utf-8') as f:

????str1 = f.read()

tree = etree.HTML(str1) # 导入本地HTML文档

# str = tree.xpath('//div[@class="index-left"]')[1]???# 使用xpath表达式定位标签,返回为对象;'//'表示多个层级,可以从任意层级开始查找;'@class=""'为属性定位

# str = tree.xpath('//div[@class="high-quality-list"]//img/@src')[1] # @src为查找所有属性为src的标签

str = tree.xpath('//*[@id="header"]/div[2]/div/p/a[1]//text()')[0] #

文章来源:https://blog.csdn.net/weixin_42645007/article/details/135547603
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。