python中的标准库html

作者:爱听音乐的boy 时间:2022-01-09 22:04:25 

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

来源:https://blog.csdn.net/qq_52722885/article/details/124476112

标签:python,标准库,html
0
投稿

猜你喜欢

  • Python 实现OpenCV格式和PIL.Image格式互转

    2021-08-03 03:41:42
  • asp如何去除HTML标签

    2010-06-07 20:47:00
  • sql server递归子节点、父节点sql查询表结构的实例

    2024-01-24 07:39:55
  • python使用递归解决全排列数字示例

    2022-02-22 04:14:49
  • MySQL数据库索引以及失效场景详解

    2024-01-26 04:12:23
  • django 链接多个数据库 并使用原生sql实现

    2024-01-23 12:52:06
  • SQL Server数据库实用小技巧集合

    2008-11-25 11:35:00
  • python获得命令行输入的参数的两种方式

    2022-09-30 23:25:02
  • MAC系统IDEA颜值插件MaterialThemeUI

    2022-12-26 00:29:07
  • Python基于smtplib协议实现发送邮件

    2021-03-02 07:26:36
  • Pytest框架 conftest.py文件的使用详解

    2023-06-20 08:16:52
  • Java 数据库连接池Druid 的介绍

    2024-01-14 10:47:42
  • MySQL 修改数据库名称的一个新奇方法

    2024-01-16 00:56:59
  • Django解决frame拒绝问题的方法

    2023-04-13 22:00:06
  • python 求定积分和不定积分示例

    2021-06-15 02:17:39
  • MySQL模糊查询用法大全(正则、通配符、内置函数)

    2024-01-22 13:48:50
  • python子类如何继承父类的实例变量

    2022-05-07 08:41:26
  • python从ftp获取文件并下载到本地

    2021-06-28 17:08:31
  • vue实现移动端图片裁剪上传功能

    2024-05-10 14:15:04
  • 基于Python实现五子棋游戏

    2023-01-29 21:47:42
  • asp之家 网络编程 m.aspxhome.com