Python对HTML转义字符进行反转义的实现方法


Posted in Python onApril 28, 2019

什么是转义字符

在 HTML 中 <、>、& 等字符有特殊含义(<,> 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字符串(Escape Sequence),例如 < 的转义字符是 <,浏览器渲染 HTML 页面时,会自动把转移字符串换成真实字符。

转义字符(Escape Sequence)由三部分组成:第一部分是一个 & 符号,第二部分是实体(Entity)名字,第三部分是一个分号。 比如,要显示小于号(<),就可以写< 。

Python对HTML转义字符进行反转义的实现方法

Python 转义字符串反转义

用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义的模块是 HTMLParser。

# Python2
import HTMLParser
>>> HTMLParser().unescape('param=p1&param=p2')
'param=p1¶m=p2'

Python3 HTMLParser 模块迁移到了 html.parser

# Python3
>>> from html.parser import HTMLParser
>>> HTMLParser().unescape('param=p1&param=p2')
'param=p1¶m=p2'

到 python3.4 以后的版本,在 html 模块新增了 unescape 方法。

# Python3.4
>>> import html
>>> html.unescape('param=p1&param=p2')
'param=p1¶m=p2'

推荐最后一种写法,因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用了,意味着之后的版本会被彻底移除。

另外,xml的sax模块也有支持反转义的函数

>>> from xml.sax.saxutils import unescape
>>> unescape('param=p1&param=p2')
'param=p1¶m=p2'

当然,你完全可以实现自己的反转义功能,不复杂,当然,我们崇尚不重复造轮子。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库与第三方库详解
Jul 22 Python
Python实现栈的方法
May 26 Python
python清除字符串里非字母字符的方法
Jul 02 Python
用Eclipse写python程序
Feb 10 Python
TensorFLow用Saver保存和恢复变量
Mar 10 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python 两个数据库postgresql对比
Oct 21 Python
python实现高斯投影正反算方式
Jan 17 Python
python文件编写好后如何实践
Jul 07 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 #Python
django的settings中设置中文支持的实现
Apr 28 #Python
Django数据库类库MySQLdb使用详解
Apr 28 #Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 #Python
​如何愉快地迁移到 Python 3
Apr 28 #Python
python学习开发mock接口
Apr 28 #Python
Python简单基础小程序的实例代码
Apr 28 #Python
You might like
德生H-501的评价与改造
2021/03/02 无线电
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python中zip()方法应用实例分析
2016/04/16 Python
python学生管理系统代码实现
2020/04/05 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python安装scipy的步骤解析
2019/09/28 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
Python猜数字算法题详解
2020/03/01 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
计算机专业优秀大学生自我总结
2014/01/21 职场文书
创业资金计划书
2014/02/06 职场文书
晚会主持词开场白
2014/03/17 职场文书
科技活动周标语
2014/10/08 职场文书
业务内勤岗位职责
2015/04/13 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
后天观后感
2015/06/08 职场文书
家庭贫困证明
2015/06/16 职场文书
python实现剪贴板的操作
2021/07/01 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
Python学习之迭代器详解
2022/04/01 Python
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers