Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法

本文介绍了Python的lxml库用于解析XML和HTML,详细讲解了lxml的基本用法、XPath语法,并通过实例展示了XPath在爬取CSDN博客信息中的应用,包括选取节点、属性匹配等。

在这里插入图片描述

lxml库

lxml是Python的一个解析库,专门用于解析XML与HTML,支持XPath解析方式。由于lxml库的底层是使用C语言编写的,所以其解析效率非常的高。

在我们后面讲解使用该库之前,我们需要安装该库。一般通过如下命令进行安装即可,代码如下:

pip install lxml

lxml基本用法

既然,lxml库支持解析XML以及HTML,那么肯定就需要学会这2种文档的解析方式。下面,我们来分别讲解。

解析XML文件

首先,我们需要使用lxml库解析XML文件,这里XML文件其实有很多种类,这里博主随便定义一个XML进行解析。

XML代码如下:

<?xml version="1.0" encoding="utf-8"?>
<people>
    <zhangsan class="法外狂徒">
        <sex></sex>
        <age>21</age>
    </zhangsan>
    <lisi class="法外狂徒的伙伴">
        <sex></sex>
        <age>21</age>
    </lisi>
</people>

解析示例代码如下所示:

from lxml import etree

tree = etree.parse("lxml_xml.xml")
print(str(etree.tostring(tree, encoding='utf-8'), 'utf-8'))
root = tree.getroot()
print("根节点", root.tag)
children = root.getchildren()
for child in children:
    print("sex:", child[0].text)
    print("class :", child.get('class'))

运行之后,效果如下所示:

xml解析

解析HTML文件

解析HTML比XML稍微复杂一点,它需要创建一个HTMLParser()对象传入到parser()方法中,因为其默认是解析XML的。

HTML代码如下:

<!DOCTYPE html>
<html>
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李元静

您的鼓励就是我创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值