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实现简单的计时器功能函数
Mar 14 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
python中使用zip函数出现错误的原因
Sep 28 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
Python进阶之@property动态属性的实现
Apr 01 Python
python之生成多层json结构的实现
Feb 27 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
Python 如何反方向迭代一个序列
Jul 28 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
javascript getElementsByTagName
2011/01/31 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
单链表反转python实现代码示例
2018/02/08 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
中国电视购物:快乐购
2017/02/04 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
开展批评与自我批评发言材料
2014/05/15 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
小学四年级学生评语
2014/12/26 职场文书
会计专业自荐信范文
2015/03/05 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
党员进社区活动总结
2015/05/07 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫