Xpath 常用语法展示
非标准代码处理
from lxml import etree #导入lxml 中erree模块
parser = etree.HTMLParser(encoding="utf-8") #解释器指定编码
tree = etree.parse("b.html", parser=parser) #把解释器加到etree解释器
print(tree) #打印节点
print(etree.tostring(tree, encoding="utf-8").decode("utf-8")) #类型解码:看到具体内容
常用功能
#1.获取子节点全部文本
result = tree.xpath('/html/body/ul/li/a/text()')
# / 从当前节点选取直接子节点
# text()方法获取节点中的文本
print(result)
#2.指定获取子节点某一个文本
result = tree.xpath('/html/body/ul/li[1]/a/text()')
#指定标签中某一个内容:li[1]:某一标签第一个内容(xpath是从一开始数数)
print(result)
#3.指定属性获取 内容
result = tree.xpath('/html/body/ol/li/a[@href="suiyue"]/text()')
# @ :指定标签属性 ;a[@href="suiyue"]/text():根据标签属性打印文本
print(result)
#4.相对查找,获取内容
ol_li_list = tree.xpath("/html/body/ol/li")
print(ol_li_list) #找到3个节点
for li in ol_li_list:
#循环,从每一个li提取文字信息
result = li.xpath("./a/text()") #从li继续寻找(相对查找)
# ./ :表示当前节点
print(result)
result = li.xpath("./a/@href") #/@+属性类型:我们就可以拿到这个标签里面某种属性的值
print(result)
#5.获取标签属性值
print(tree.xpath('/html/body/ul/li/a/@href'))
# a/@href: a标签属性href 所有的值
小技巧
# 利用谷歌浏览器:F12程序员,快速复制Xpath路劲
print(tree.xpath("/html/body/div[1]/text()"))

浙公网安备 33010602011771号