xpath详解

  1. 安装lxml库

pip install lxml -i https://pypi.douban.com/simple
  1. 导入lxml.etree

from lxml import etree

注:etree导入报错,属于pycharm自身的问题,运行无碍

  1. etree的属性和方法

etree.parse('本地文件路径')                                 用于解析本地文件
etree.HTML(respond.read().decode('utf-8'))       用于解析服务器响应的数据 🌟
etree对象.xpath('xpath路径')                              用于精确提取某一标签值 🌟

xpath的基本语法:

实战案例:

demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    <ul>
        <li id="l1" class="c1">北京</li>
        <li id="l2">上海</li>
        <li>武汉</li>
        <li>深圳</li>
    </ul>
</body>
</html>
from lxml import etree

# xpath解析
# (1)本地文件  etree.parse(本地文件路径)
# (2)服务器响应的数据 etree.HTML(respond.read().decode('utf-8'))

# xpath解析本地文件
tree = etree.parse('demo.html')
#print(tree)

# 查找ul下面的li, //为所有子孙都可,/只能为直接孩子🌟
li_list_01 = tree.xpath('//body/ul/li')
li_list_02 = tree.xpath('//body/li')

#找到所有有id属性的li标签🌟
li_list_03 = tree.xpath('//ul/li[@id]')
#找到所有id属性为l1的li标签🌟
li_list_04 = tree.xpath('//ul/li[@id="l1"]')

#查找到id为l1的标签class的属性值
li_list_05 = tree.xpath('//ul/li[@id="l1"]/@class')

#获取所有有id属性的li标签内容🌟
li_list_06 = tree.xpath('//ul/li[@id]/text()')
#获取所有id属性为l1的li标签🌟
li_list_07 = tree.xpath('//ul/li[@id="l1"]/text()')

# 判断列表内容和长度
print(li_list_06)
print(len(li_list_06))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向岸看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值