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中zfill()方法的使用教程
May 20 Python
python 网络爬虫初级实现代码
Feb 27 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
Python队列、进程间通信、线程案例
Oct 25 Python
NumPy中的维度Axis详解
Nov 26 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
django实现模型字段动态choice的操作
Apr 01 Python
如何使用Pytorch搭建模型
Oct 26 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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 Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP静态文件生成类实例
2014/11/29 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
python爬虫爬取网页表格数据
2018/03/07 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
最热门的自我评价
2013/12/30 职场文书
校三好学生主要事迹
2014/01/11 职场文书
商铺门面租房协议书
2014/10/21 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
先进党组织事迹材料
2014/12/26 职场文书
营业员岗位职责
2015/02/11 职场文书
2016党员入党决心书
2015/09/22 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书