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 &amp; Flask 实现RESTful Web API的实例
Sep 19 Python
python测试mysql写入性能完整实例
Jan 18 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
Python常见数字运算操作实例小结
Mar 22 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Numpy 多维数据数组的实现
Jun 18 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
python的变量和简单数字类型详解
Sep 15 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
PHP语法自动检查的Vim插件
2014/08/11 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
Display SQL Server Version Information
2007/06/21 Javascript
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
node.js中的require使用详解
2014/12/15 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
python端口扫描系统实现方法
2014/11/19 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
python读取mysql数据绘制条形图
2020/03/25 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
J2EE相关知识面试题
2013/08/26 面试题
办公室文秘自我评价
2013/09/21 职场文书
毕业生求职推荐信
2013/11/04 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS