python的lxml库简介_lxml库
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库相关推荐
- Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略
Py之Pandas:Python的pandas库简介.安装.使用方法详细攻略 目录 pandas库简介 pandas库安装 pandas库使用方法 1.函数使用方法 2.使用经验总结 3.绘图相关操作 ...
- python curses_Py之curses:curses库的简介、使用、安装方法详细攻略
Py之curses:curses库的简介.使用.安装方法详细攻略 目录 curses库简介 curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 ...
- Python库:time库
一.time库简介 time库是Python中处理时间的标准库 计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 引入:import time time.& ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- 【Linux基础】静态库和共享库(如何自定义库文件?)
文章目录 前言 一.库文件的基本知识 1.库文件分类 2.库文件命名 二.如何自定义静态库? 1.静态库简介 2.具体流程(详细步骤) 3.静态库缺点 三.如何自定义共享库? 1.共享库简介 2.具体 ...
- linux静态库与动态库整理
简化版本 静态库: 制作: gcc -g -c ./*.c -I ../include/ ar crs libmod.a *.o 使用 gcc -g main.c -L ./ -lmod -I ../ ...
- QMUI_Android库 和 arch 库官方使用文档
一,QMUI库 简介 QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精 ...
- Linux下动态库和静态库制作与调用
Linux下动态库和静态库制作与调用 1.动态库和静态库简介 静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...
- python添加lxml库_Python lxml库简介
lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现成的XML解析器,但是为了获得更好的结果,开发人员有时更愿意编写自己的XML和HTML解析器. ...
最新文章
- python3编码命名规范_Python代码规范和命名规范
- ]解决在XP上sqlserver2005客户端安装的问题
- python根据列表绘制柱状图_python把一个列表画柱状图
- 新书速递 | 《知识图谱:方法、实践与应用》
- linux 所有命令无法使用
- python使用sphinx自动生成文档
- MacBook安装telnet工具和使用
- 小米平板 计算机 连接打印机,小米米家喷墨打印机:打印方式介绍
- TensorFlow 高级之一(实现单层神经网络)
- 2016.7.31整机升级计划
- Modbus从站读写数据
- vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
- 不知道如何分析选择基金、股票?Python来教你
- 编写php自动脚本,自己编写自动签到脚本
- 苹果笔记本装win7_m2 ngff无线网卡接口的笔记本电脑装苹果网卡
- Handler详解(中)
- mssql和mysql注入区别_Mssql手工注入小结
- opencv学习八:高斯模糊和边缘保留滤波EPF
- Linux运维怎么从月薪2k做到年薪50w?
- 小朋友们freeeim
热门文章
- win7刷bois破解经历,华硕主板.
- 用计算机考试不保存直接提交,计算机一级考试操作题没储存,然后就交卷,系统会自动储存答案吗?有...
- 黑马程序员—(iOS开发)C语言语法解析---(三)
- 百度地图个性化编辑以及使用
- vm虚拟机常见问题解决方法
- 在计算机启动过程中按F8,Win8如何在启动时按F8出现修复计算机选项
- 小米5s升级android7.0,官方回应 小米5s升级安卓7.0还要再等等
- Ubuntu20.04系统搭建SVN服务器
- 小程序开发--开发者工具的插件推荐
- win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装与 win10 GPU 机器学习性能对比, numa_node 问题