python的html标准库


Posted in Python onApril 29, 2022

python之标准库html

html库是用于解析HTML的一个工具,是python自带的标准库之一。
html库位置:

python的html标准库

__init__.py文件提供两个函数:

__all__ = ['escape', 'unescape']

介绍 escape 和 unescape:

escape(s, quote=True) #用来将特殊字符进行转义成实体字符
"""
参数介绍:
  s 指定要转义的特殊字符
  quote 默认为True,表示要将 " 或者 ' 也要转义成实体字符,False反之不用转义成实体字符
"""
unescape(s) #用来将实体字符进行还原到特殊字符

escape 和 unescape 的使用:

import html
s = '<div id="box">div</div>'
res = html.escape(s)
print(res)
print(html.escape(s,quote=False))
print(html.unescape(res)) #理解还原即可

输出结果:

python的html标准库

escape源码的实现:

python的html标准库

html库中的 entities 模块

该模块定义: HTML字符实体引用。
该模块提供四个字典对象:

__all__ = ['html5', 'name2codepoint', 'codepoint2name', 'entitydefs']

导入:

from html import entities
html = entities.html5
name2codep = entities.name2codepoint
codep = entities.codepoint2name
ent = entities.entitydefs
print(html)
print(name2codep)
print(codep)
print(ent)

输出结果:

python的html标准库

html库中的 parser 模块

该模块是HTML和XHTML的解析器。
该模块提供一个类:

__all__ = ['HTMLParser']

导入:

from html import parser
htmlParser=parser.HTMLParser()

介绍该类的常用属性和常用方法:
常用属性:

lasttag #保存上一个解析的标签名,返回字符串。

已实现的常用方法:

feed(data) #将数据馈送到解析器。无返回值
unescape(s) #往上看,前面有介绍的
get_starttag_text() #返回开始标记的完整来源
close() #关闭

未实现的常用方法:
注意:这些方法在源码中都没有具体实现,需要我们定义一个子类继承自HTMLParser类,在子类中重写这些方法,实现自己逻辑

handle_starttag(tag, attrs) #处理开始标签,如 <div>;这里的attrs获取到的是属性列表,属性以元组的方式展示
handle_endtag(tag) #处理结束标签, 如 </div>
handle_data(data) #处理数据,标签之间的文本
handle_comment(data) #处理注释,<!-- - -> 之间的文本
handle_startendtag(tag, attrs) #处理自己结束的标签,如 <img />

以上方法在源码中是这样的:

python的html标准库

 

python的html标准库

python的html标准库

到此这篇关于python之标准库html的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python 调用VC++的动态链接库(DLL)
Sep 06 Python
python使用xmlrpc实例讲解
Dec 17 Python
Python实现的数据结构与算法之链表详解
Apr 22 Python
设计模式中的原型模式在Python程序中的应用示例
Mar 02 Python
python requests 使用快速入门
Aug 31 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
详解Python3 pickle模块用法
Sep 16 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
详解Python多线程下的list
Jul 03 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 #Python
python数据处理之Pandas类型转换
Python实现将多张图片合成MP4视频并加入背景音乐
Python FuzzyWuzzy实现模糊匹配
Apr 28 #Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 #Python
详解PyTorch模型保存与加载
Apr 28 #Python
You might like
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP队列用法实例
2014/11/05 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
JavaScript中实现块作用域的方法
2010/04/01 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
django框架auth模块用法实例详解
2019/12/10 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
使用python实现飞机大战游戏
2020/03/23 Python
构建高效的python requests长连接池详解
2020/05/02 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
社区消防工作实施方案
2014/03/21 职场文书
小学社会实践活动总结
2014/07/03 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
导游词怎么写
2015/02/04 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
数据库连接池
2021/04/06 MySQL