Python lxml库的安装和使用

8个月前 (04-28)
lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 Xpath 表达式提供了良好的支持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。

安装lxml库

lxml 属于 Python 第三方库,因此需要使用如下方法安装:

pip3 install lxml

在 CMD 令行验证是否安装成功。若引入模块,不返回错误则说明安装成功。

>>> import lxml

>>>

lxml使用流程

lxml 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面我们简单介绍一下 lxml 库的使用流程,如下所示:

1) 导入模块

from lxml import etree

2) 创建解析对象

调用 etree 模块的 HTML() 方法来创建 HTML 解析对象。如下所示:

parse_html = etree.HTML(html)

HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,该方法可以自动修正 HTML 文本。示例如下:

from lxml import etree

html_str = '''

<div>

<ul>

<li class="item1"><a href="link1.html">Python</a></li>

<li class="item2"><a href="link2.html">Java</a></li>

<li class="site1"><a href="c.biancheng网站站点" rel="nofollow" />

<html><body><div>

<ul>

<li class="item1"><a href="link1.html">Python</a></li>

<li class="item2"><a href="link2.html">Java</a></li>

<li class="site1"><a href="c.biancheng网站站点" rel="nofollow" />

r_list = parse_html.xpath('xpath表达式')

lxml库数据提取

下面通过一段 HTML 代码实例演示如何使用 lxml 库提取想要的数据。HTML 代码如下所示:

<div class="wrapper">

<a href="www.biancheng网站站点" rel="nofollow" />

from lxml import etree

# 创建解析对象

parse_html=etree.HTML(html)

# 书写xpath表达式,提取文本最终使用text()

xpath_bds='//a/text()'

# 提取文本数据,以列表形式输出

r_list=parse_html.xpath(xpath_bds)

# 打印数据列表

print(r_list)

输出结果:

['website product', '编程', '微博', '百度贴吧', '天猫淘宝', '京东购物', '编程', '安全卫士', '视频娱乐', '年轻娱乐', '搜索引擎']

2) 获取所有href的属性值

from lxml import etree

# 创建解析对象

parse_html=etree.HTML(html)

# 书写xpath表达式,提取文本最终使用text()

xpath_bds='//a/@href'

# 提取文本数据,以列表形式输出

r_list=parse_html.xpath(xpath_bds)

# 打印数据列表

print(r_list)

输出结果:

['http://www.biancheng网站站点" rel="nofollow" />

from lxml import etree

# 创建解析对象

parse_html=etree.HTML(html)

# 书写xpath表达式,提取文本最终使用text()

xpath_bds='//a/@href'

# 提取文本数据,以列表形式输出

xpath_bds='//ul[@id="sitename"]/li/a/@href'

# 打印数据列表

print(r_list)

输出结果:

['http://www.biancheng网站站点" rel="nofollow" />