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 相关文章推荐
简介Django中内置的一些中间件
Jul 24 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Python3 中sorted() 函数的用法
Mar 24 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
python函数调用,循环,列表复制实例
May 03 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python爬虫基础知识点整理
Jun 02 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
python小程序之飘落的银杏
Apr 17 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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初学者头疼十四条问题大总结
2008/11/12 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
vue2.0实战之基础入门(1)
2017/03/27 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
python全栈开发语法总结
2020/11/22 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
开办饭店创业计划书
2013/12/28 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2014年计生工作总结
2014/11/21 职场文书
2015年春节标语口号
2014/12/09 职场文书
土地租赁协议书
2015/01/29 职场文书
初二物理教学反思
2016/02/19 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书