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匹配中文的正则表达式
May 11 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
使用Python的turtle模块画图的方法
Nov 15 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
python编写分类决策树的代码
Dec 21 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
django输出html内容的实例
May 27 Python
django 解决manage.py migrate无效的问题
May 27 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python制作exe文件简单流程
Jan 24 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
Python错误的处理方法
Jun 23 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
再谈javascript原型继承
2014/11/10 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
理解python中生成器用法
2017/12/20 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
python如何删除文件、目录
2020/06/23 Python
Ruby如何实现动态方法调用
2012/11/18 面试题
好的自荐信包括什么内容
2013/11/07 职场文书
档案管理员岗位职责
2013/12/01 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
运动员获奖感言
2014/08/15 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
教师节大会主持词
2015/07/06 职场文书
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android