Python爬虫:XML路径语言(XPath)的使用笔记

本文介绍了Python中使用XPath进行XML和HTML文档解析的关键概念和操作,包括XPath的常用规则、解析实例、节点选择、属性匹配、文本获取等,展示了如何在爬虫项目中有效地抽取所需信息。
摘要由CSDN通过智能技术生成

如何使用XPath

XPath是一门在XML文档中查找信息的语言。最初是用来搜寻XML文档的,但同样适用于HTML文档的搜索。在做爬虫时,可以使用XPath来做相应的信息抽取,几乎所有我们想要定位的节点都可以使用XPath来选择。


1、XPath 常用规则

XPath 常用规则
表达式

描述

nodeName 选取此节点的所有子节点
/

从当前节点选取直接子节点

// 从当前节点选取子孙节点
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性

示例如下:

//a[@class='tit']

表示所有名称为a,同时属性class的值为tit的节点。

2、准备工作

需要确保lxml解析库已经安装完成,安装指令如下:

pip3 install lxml

3、解析实例

  • 读取HTML文本【 etree.HTML() 】

lxml解析库中的etree模块,可以使用HTML类将HTML文本转换成一个XPath解析对象,如果HTML文本不完整,etree模块可以自动修正HTML文本:

from lxml import etree

text = '''
<div>
    <ul>
        <li class="item-0"><a href="link1.html">first item</a></li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-inactive"><a href="link3.html">third item</a></li>
        <li class="item-1"><a href="link4.html">forth item</a></li>
        <li class="item-0"><a href="link5.html">fifth item</a>
    </ul>
</div>
'''
html = etree.HTML(text)
result = etree.tostring(html)
print(result.decode('utf-8'))

etree模块中的tostring函数可以输出修正后的HTML代码,但结果会变成bytes类型,可以利用decode()方法将其转换成str类型,上面代码运行结果如下:

<html><body><div>
    <ul>
        <li class="item-0"><a href="link1.html">first item</a></li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-inactive"><a href="link3.html">third item</a></li>
        <li class="item-1"><a href="link4.html">forth item</a></li>
        <li class="item-0"><a href="link5.html">fifth item</a>
    </li></ul>
</div>
</body></html&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值