xpath的基本用法

from lxml import etree
text = """
<div>
<ul>
<li class="item-0"><a href="link1,html">one</a></li>
<li class="item-1"><a href="link1,html">two</a></li>
<li class="item-inactive"><a href="link1,html">three</a></li>
<li class="item-1"><a href="link1,html">four</a></li>
<li class="item-0"><a href="link1,html">five</a>
</ul>
</div>
"""
html = etree.HTML(text)
# 从文本读取
html = etree.parse('test.html', etree.HTMLParser())
result = etree.tostring(html)  # bytes类型
# print(result)
# print(result.decode('utf-8'))  # string类型

#匹配
# rp1 = html.xpath('//*')
# print(rp1)

# rp2 = html.xpath('//li')
# print(rp2)

# 匹配文本
rp3 = html.xpath("//li[@class='item-0']/a/text()")
print(rp3)
rp4 = html.xpath("//li[@class='item-0']//text()")
print(rp4)
# 获取属性
rp5 = html.xpath('//li//a/@href')
print(rp5)

# 一个属性多个值 需要contains匹配
rp6 = html.xpath("//li[contains(@class, '-first')]/a/text()")
print(rp6)

# 多属性匹配 and连接
rp7 = html.xpath("//li[contains(@class, 'li') and @name='item']//text()")
print(rp7)
# 在条件中传入顺序 如数字 position()> last等等
rp8 = html.xpath("//li[1]/a/text()")
rp9 = html.xpath("//li[position()>2]/a/text()")
rp10 = html.xpath("//li[last()-1]/a/text()")
print(rp8)
print(rp9)
print(rp10)

  

转载于:https://www.cnblogs.com/Ychao/p/9372216.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值