XPath 是一门在 XML 文档中查找信息的语言。
XPath 是 XSLT 中的主要元素。
XQuery 和 XPointer 均构建于 XPath 表达式之上
安装:在终端输入 pip install lxml
基本使用:
from lxml import etree s=""" <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></li> </ul> </div> """ #将变量读取为HTML对象,自动添加<HTML><sbody>.......</body></HTML> html=etree.HTML(s) #解析数,根节点 data1=html.xpath('/html') for i in data1: print(data1) #//后面跟子孙节点,后面的节点可以在任意位置 data2=html.xpath('//li') for i in data2: print(i) #写具体路径 data3=html.xpath('/html/body/div/ul/li/a') for i in data3: print(i.text) #循环某个属性 data4=html.xpath('/html/body/div/ul/li/@class') for i in data4: print(i) #代表当前节点,..代表父节点 data5=html.xpath('/html/body/div/ul/li/a') for i in data5: temp=i.xpath("./@href") print(temp) #读取某一个节点 data6=html.xpath('/html/body/div/ul') for i in data6: li_1=i.xpath('./li[1]') # a_1=li_1.xpath('./a[1]') print(li_1) li_last=i.xpath('./li[last()]') print(li_last) #带有某属性的标签 data7=html.xpath('//ul/li/a[@href="link2.html"]') for i in data7: print(i.text) #位置节点 data8=html.xpath('//ul/li/*') for i in data8: if hasattr(i,'text'): print(i.text) else: print(i)