一、简介
XPath 是一门在 XML 文档中查找信息的语言。
XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
二、安装
pip install lxml |
三、使用
from lxml import etree #定义字符串变量 wb_data = """ <div> <ul> <li class="item-0"><a href="link1.html">first item</a></li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-inactive"><a href="link3.html">third item</a></li> <li class="item-1"><a href="link4.html">fourth item</a></li> <li class="item-0"><a href="link5.html">fifth item</a> </ul> </div> """ #将字符串转换为html的对像,制动补全<html><body>... ...</body></html> html=etree.HTML(wb_data) # / 代表级点 data1=html.xpath('/html') print("data1"+str(data1)) # // 代表后面的节点可以任意位置 data2=html.xpath('//a') for i in data2: if hasattr(i,'text'): print(i.text) else: print(i) #具体的路经 data3=html.xpath('html/body/div/ul/li') for i in data3: print(i) # . 代表当前节点,..代表父节点 data4=html.xpath('/html/body/div/ul') for i in data4: li=i.xpath('./li') for j in li: a=j.xpath('./a') for k in a: print(k.text) for i in data4: ul=i.xpath('../ul') print(ul) # @ 选取属性 data5=html.xpath('//li/@class') print(data5) data6=html.xpath('//a/@href') print(data6) #谓语,指定具体的节点 data7=html.xpath('//li[i]/a') print(data7) data8=html.xpath('//li[last()]') print(data8) data9=html.xpath('//a[@href="link3.html"]') for i in data9: if hasattr(i,'text'): print(i.text) # * 未知节点 data10=html.xpath('//*') print(len(data10)) for i in data10: if hasattr(i,'text'): print(i.text) data11=html.xpath('//@*') print(len(data11)) print(data11) # | 匹配两个 data12=html.xpath('//li | //a') print(len(data12))