Python lxml库的安装和使用

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 文本。示例如下:

  1. from lxml import etree
  2. html_str = ‘’’
    • Python
    • Java
    • C语言中文网
    • 百度
    • 京东
    • ‘’’
    • html = etree.HTML(html_str)
    • tostring()将标签元素转换为字符串输出,注意:result为字节类型

    • result = etree.tostring(html)
    • print(result.decode(‘utf-8’))

    输出结果如下:

      • Python
      • Java
      • C语言中文网
      • 百度
      • 京东

      上述 HTML 字符串存在缺少标签的情况,比如“C语言中文网”缺少一个 闭合标签,当使用了 HTML() 方法后,会将其自动转换为符合规范的 HTML 文档格式。

      3) 调用xpath表达式

      最后使用第二步创建的解析对象调用 xpath() 方法,完成数据的提取,如下所示:

      **

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

      lxml库数据提取

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

      1. website product
        • 编程
        • 微博
        • 百度贴吧
        • 天猫淘宝
        • 京东购物
        • 编程
        • 安全卫士
        • 视频娱乐
        • 年轻娱乐
        • 搜索引擎
        1) 提取所有a标签内的文本信息
        1. from lxml import etree
        2. 创建解析对象

        3. parse_html=etree.HTML(html)
        4. 书写xpath表达式,提取文本最终使用text()

        5. xpath_bds=‘//a/text()’
        6. 提取文本数据,以列表形式输出

        7. r_list=parse_html.xpath(xpath_bds)
        8. 打印数据列表

        9. print(r_list)

        输出结果:

        **

        ['website product', '编程', '微博', '百度贴吧', '天猫淘宝', '京东购物', '编程', '安全卫士', '视频娱乐', '年轻娱乐', '搜索引擎']
        
        2) 获取所有href的属性值
        1. from lxml import etree
        2. 创建解析对象

        3. parse_html=etree.HTML(html)
        4. 书写xpath表达式,提取文本最终使用text()

        5. xpath_bds=‘//a/@href’
        6. 提取文本数据,以列表形式输出

        7. r_list=parse_html.xpath(xpath_bds)
        8. 打印数据列表

        9. print(r_list)

        输出结果:

        **

        ['http://www.biancheng.net/product/', 'http://www.biancheng.net/', 'http://world.sina.com/', 'http://www.baidu.com', 'http://www.taobao.com', 'http://www.jd.com/', 'http://c.bianchneg.net/', 'http://www.360.com', 'http://www.bytesjump.com/', 'http://bzhan.com/', 'http://hao123.com/']
        
        3) 不匹配href=" www.biancheng.net/priduct"
        1. from lxml import etree
        2. 创建解析对象

        3. parse_html=etree.HTML(html)
        4. 书写xpath表达式,提取文本最终使用text()

        5. xpath_bds=‘//a/@href’
        6. 提取文本数据,以列表形式输出

        7. xpath_bds=‘//ul[@id=“sitename”]/li/a/@href’
        8. 打印数据列表

        9. print(r_list)

        输出结果:

        这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

        优快云大礼包:全网最全《全套Python学习资料》免费分享🎁

        😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

        👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

        style=“margin: auto” />

        1️⃣零基础入门

        ① 学习路线

        对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
        在这里插入图片描述

        ② 路线对应学习视频

        还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

        ③练习题

        每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
        在这里插入图片描述
        因篇幅有限,仅展示部分资料

        2️⃣国内外Python书籍、文档

        ① 文档和书籍资料

        在这里插入图片描述

        3️⃣Python工具包+项目源码合集

        ①Python工具包

        学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
        在这里插入图片描述

        ②Python实战案例

        光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
        在这里插入图片描述

        ③Python小游戏源码

        如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
        在这里插入图片描述

        4️⃣Python面试题

        我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
        在这里插入图片描述
        在这里插入图片描述

        5️⃣Python兼职渠道

        而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
        在这里插入图片描述
        在这里插入图片描述
        上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
        😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

        👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值