python解析页面之xpath

xpath:
全称:XML PATH Language, 一种小型的查询语言;
支持的解析:
XML格式
html格式
通过元素,和属性进行导航
xpath的常用规则
在这里插入图片描述

html = """
<!DOCTYPE html>
<html>
<head lang="en">
    <title>xpath测试</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<div id="content">
    <ul id="ul">
        <li>NO.1</li>
        <li>NO.2</li>
        <li>NO.3</li>
    </ul>
    <ul id="ul2">
        <li>one</li>
        <li>two</li>
    </ul>
</div>
<div id="url">
    <a href="http:www.58.com" title="58">58</a>
    <a href="http:www.csdn.net" title="CSDN">CSDN</a>
</div>
</body>
</html>
"""

1).先将html内容转化为xpath可以解析/匹配的格式

selector = etree.HTML(html)

2).使用xpath规则对页面进行解析
例:
需求: 获取文件中div的属性id为”content“里面的所有id为“ul的”ul标签的所有li标签的内容

str = selector.xpath('//div[@id="content"]/ul[@id="ul"]/li/text()')
print(str)
# ['NO.1', 'NO.2', 'NO.3']
print(type(str))
# <class 'list'>

需求: 获取文件中div的属性id为”url“里面的所有a标签的href属性

str = selector.xpath('//div[@id="url"]/a/@href')
print(str)
# ['http:www.58.com', 'http:www.csdn.net']
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值