lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。

lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,我们可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。

需要安装C语言库,可使用 pip 安装:pip install lxml

基本使用:

我们可以利用他来解析HTML代码,并且在解析HTML代码的时候,如果HTML代码不规范,他会自动的进行补全。示例代码如下:# 使用 lxml 的 etree 库

from lxml import etree

text = '''

  • first item
  • second item
  • third item
  • fourth item
  • fifth item # 注意,此处缺少一个  闭合标签

'''

#利用etree.HTML,将字符串解析为HTML文档

html = etree.HTML(text)

# 按字符串序列化HTML文档

result = etree.tostring(html)

print(result)

输入结果如下:

  • first item
  • second item
  • third item
  • fourth item
  • fifth item

可以看到。lxml会自动修改HTML代码。例子中不仅补全了li标签,还添加了body,html标签。

从文件中读取html代码:

除了直接使用字符串进行解析,lxml还支持从文件中读取内容。我们新建一个hello.html文件:

  • first item
  • second item
  • third item
  • fourth item
  • fifth item

然后利用etree.parse()方法来读取文件。示例代码如下:from lxml import etree# 读取外部文件 hello.htmlhtml = etree.parse('hello.html')

result = etree.tostring(html, pretty_print=True)

print(result)

总结:解析html字符串:使用lxml.etree.HTML进行解析。示例代码如下:htmlElement = etree.HTML(text)

print(etree.tostring(htmlElement,encoding='utf-8').decode("utf-8"))

解析html文件:使用lxml.etree.parse进行解析。示例代码如下:htmlElement = etree.parse("tencent.html")

print(etree.tostring(htmlElement, encoding='utf-8').decode('utf-8'))

这个函数默认使用的是XML解析器,所以如果碰到一些不规范的HTML代码的时候就会解析错误,这时候就要自己创建HTML解析器。parser = etree.HTMLParser(encoding='utf-8')

htmlElement = etree.parse("lagou.html",parser=parser)

print(etree.tostring(htmlElement, encoding='utf-8').decode('utf-8'))

作者:编程小王子AAA

链接:https://www.jianshu.com/p/a8064ce79e94

python的lxml库简介_lxml库相关推荐

  1. Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略

    Py之Pandas:Python的pandas库简介.安装.使用方法详细攻略 目录 pandas库简介 pandas库安装 pandas库使用方法 1.函数使用方法 2.使用经验总结 3.绘图相关操作 ...

  2. python curses_Py之curses:curses库的简介、使用、安装方法详细攻略

    Py之curses:curses库的简介.使用.安装方法详细攻略 目录 curses库简介 curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 ...

  3. Python库:time库

    一.time库简介 time库是Python中处理时间的标准库 计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 引入:import time time.& ...

  4. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  5. 【Linux基础】静态库和共享库(如何自定义库文件?)

    文章目录 前言 一.库文件的基本知识 1.库文件分类 2.库文件命名 二.如何自定义静态库? 1.静态库简介 2.具体流程(详细步骤) 3.静态库缺点 三.如何自定义共享库? 1.共享库简介 2.具体 ...

  6. linux静态库与动态库整理

    简化版本 静态库: 制作: gcc -g -c ./*.c -I ../include/ ar crs libmod.a *.o 使用 gcc -g main.c -L ./ -lmod -I ../ ...

  7. QMUI_Android库 和 arch 库官方使用文档

    一,QMUI库 简介 QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精 ...

  8. Linux下动态库和静态库制作与调用

    Linux下动态库和静态库制作与调用 1.动态库和静态库简介   静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...

  9. python添加lxml库_Python lxml库简介

    lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现成的XML解析器,但是为了获得更好的结果,开发人员有时更愿意编写自己的XML和HTML解析器. ...

最新文章

  1. python3编码命名规范_Python代码规范和命名规范
  2. ]解决在XP上sqlserver2005客户端安装的问题
  3. python根据列表绘制柱状图_python把一个列表画柱状图
  4. 新书速递 | 《知识图谱:方法、实践与应用》
  5. linux 所有命令无法使用
  6. python使用sphinx自动生成文档
  7. MacBook安装telnet工具和使用
  8. 小米平板 计算机 连接打印机,小米米家喷墨打印机:打印方式介绍
  9. TensorFlow 高级之一(实现单层神经网络)
  10. 2016.7.31整机升级计划
  11. Modbus从站读写数据
  12. vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
  13. 不知道如何分析选择基金、股票?Python来教你
  14. 编写php自动脚本,自己编写自动签到脚本
  15. 苹果笔记本装win7_m2 ngff无线网卡接口的笔记本电脑装苹果网卡
  16. Handler详解(中)
  17. mssql和mysql注入区别_Mssql手工注入小结
  18. opencv学习八:高斯模糊和边缘保留滤波EPF
  19. Linux运维怎么从月薪2k做到年薪50w?
  20. 小朋友们freeeim

热门文章

  1. win7刷bois破解经历,华硕主板.
  2. 用计算机考试不保存直接提交,计算机一级考试操作题没储存,然后就交卷,系统会自动储存答案吗?有...
  3. 黑马程序员—(iOS开发)C语言语法解析---(三)
  4. 百度地图个性化编辑以及使用
  5. vm虚拟机常见问题解决方法
  6. 在计算机启动过程中按F8,Win8如何在启动时按F8出现修复计算机选项
  7. 小米5s升级android7.0,官方回应 小米5s升级安卓7.0还要再等等
  8. Ubuntu20.04系统搭建SVN服务器
  9. 小程序开发--开发者工具的插件推荐
  10. win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装与 win10 GPU 机器学习性能对比, numa_node 问题