python爬虫之xpath解析附示例

xpath解析

xpath是在XML文档中搜索内容的一门语言,html是xml的一个子集

我们在使用xpath的过程中类似于对于文件目录的访问

<book>
    <id>1</id>
    <name>野花遍地⾹</name>
    <price>1.23</price>
    <author>
        <nick>周⼤强</nick>
        <nick>周芷若</nick>
    </author>
</book>

首选先了解几个概念,在这个例子中:

  1. book, id, name, price…都被称为节点.

  2. Id, name, price, author被称为book的⼦节点

  3. book被称为id, name, price, author的⽗节点

  4. id, name, price,author被称为兄弟节点

安装

了解完了之后我们就可以去安装了

pip install lxml

用法

  1. 将要解析的html内容构造出etree对象
  2. 使用etree对象的xpath()方法配合xpath表达式来完成对数据的提取
xml = """
<book>
    <id>1</id>
    <name>野花遍地⾹</name>
    <price>1.23</price>
    <nick>哈哈哈哈</nick>
    <author id="1">
        <nick id="2">周⼤强</nick>
        <nick id="3">周芷若</nick>
        <group>
        	<nick>hhh</nick>
        </group>
    </author>
</book>
"""

tree = etree.XML(xml) # 如果要处理html文本的话使用etree.HTML(html)
# 获取book的所有子节点
result = et.xpath("/book")

# 获取book的子节点nick
result = et.xpath("/book/nick")

# 获取book中所有nick节点
result = et.xpath("/book//nick")

# 获取book中指定级数下的nick节点,使用*占位表示通配符
result = et.xpath("/book/*/nick")

# 获取某个标签中的属性
result = tree.xpath("/book/author/@id")

# 获取某个标签中的文本
result = tree.xpath("/book/name/text()")

# 根据属性筛选
result = tree.xpath("/book/author/nick[@id='2']/text()")

示例

基本操作掌握之后可以通过这篇博客查看实际使用方法:python爬虫之使用xpath解析爬取猪八戒网数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hydrion-Qlz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值