作用:通过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=""'为属性定位
用于将HTML文本实例化成extree对象,方便进行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] #