Xpath解析

目录

Xpath的简介:

简介:

相关概念:

Xpath的使用:

安装:

用法:

第一步:准备html

第二步:将html构造出etree对象

第三步:使用etree对象的xpath()方法配合xpath表达式来完成对数据的提取


Xpath的简介:

简介:

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快地被开发者采用来当作小型查询语言。

HTML属于XML的一个子集,所以可以用Xpath解析XML

相关概念:

<book>
    <id>1</id>
    <name>技术人才</name>
    <price>5w</price>
    <author>
        <nick>程序猿</nick>
        <nick>码农</nick>
    </author>
</book>
book,id,,name,price,author都被称为节点.
Id,name,price,author被称为book的子节点
book被称为id,name,price,author的父节点
id,name,price,author被称为同胞节点

Xpath的使用:

安装:

pip install lxml

用法:

第一步:准备html

html = """
<body>
    <ul>
        <li><a href="http://www.baidu.com">百度
</a></li>
        <li><a href="http://www.google.com">谷歌
</a></li>
        <li><a href="http://www.sogou.com">搜狗
</a></li>
    </ul>
    <ol>
        <li><a href="qiche">汽车</a></li>
        <li><a href="huoche">火车</a></li>
        <li><a href="feiji">飞机</a></li>
    </ol>
</body>
</html>
"""

第二步:将html构造出etree对象

from lxml import etree
html = """
<body>
    <ul>
        <li><a href="http://www.baidu.com">百度
</a></li>
        <li><a href="http://www.google.com">谷歌
</a></li>
        <li><a href="http://www.sogou.com">搜狗
</a></li>
    </ul>
    <ol>
        <li><a href="qiche">汽车</a></li>
        <li><a href="huoche">火车</a></li>
        <li><a href="feiji">飞机</a></li>
    </ol>
</body>
</html>
"""
tree = etree.HTML(html)

第三步:使用etree对象的xpath()方法配合xpath表达式来完成对数据的提取

from lxml import etree
html = """
<body>
    <ul>
        <li><a href="http://www.baidu.com">百度
</a></li>
        <li><a href="http://www.google.com">谷歌
</a></li>
        <li><a href="http://www.sogou.com">搜狗
</a></li>
    </ul>
    <ol>
        <li><a href="qiche">汽车</a></li>
        <li><a href="huoche">火车</a></li>
        <li><a href="feiji">飞机</a></li>
    </ol>
</body>
</html>
"""
tree = etree.HTML(html)
result = tree.xpath("/html/body/ul/li/a/@href")
print(result)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值