xpath基本使用方法

解析节点

在from lxml import etree
text ='''
<div><ul>
<li class="item-o"><a href="link1.html">first item</a></li><li class="item-1"><a href="link2.html">second itemc/a></li>
<li class="item-o"><a href="link1.html">first item</a></li><li class="item-1"><a href="link2.html">second itemc/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-inactive"><a href="link3.html">third item</a></li<li class="item-1"><a href="link4.html">fourth item</a></li>
<li class="item-o"><a href="link5.html">fifth item</a>
<li class=“Item-o”><a href=“link 5.html”>第五项</a>
</ul>
</ul>
</div>
</div>
'''
html=etree.HTML(text)
result=html.xpath('//li/a')
print(result)

//*表示匹配所有节点

//nodename 选取所有的节点
//节点名/子节点名 查找子节点
//节点名//子孙节点名 查找子孙节点

查找父节点

//子节点=[@属性值]/parent:😗/@要获取的属性值

属性匹配

//节点名[@要过滤的属性值]
过滤调特定的属性值

文本获取

若该节点下只有子节点才有文本
//节点名[@属性=“属性值”]/子节点名/texr() 获取子节点的文本
//节点名[@属性=“属性值”]//texr() 获取该节点下所以的文本

//节点名[@属性=“属性值”]/texr() 在该节点有文本的情况下获取文本

获取属性值

//节点名/#@属性名

属性多值匹配

//节点名[contains(@属性名,‘任一属性值’)]

多属性匹配

and连接
//节点名[@属性1=值 and 属性2=值]

位序选择

//节点名[位置]

节点轴选择

//节点名/ancestor:😗 获取所有祖先节点
/attribute:😗 获取所有属性值
/child:😗 获取所有直接子节点
/descendant:😗 获取所有子孙节点
/following:😗 获取接下来的所有节点
/following-sibling:😗 获取之后同级节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值