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两个整数相除得到浮点数值的方法
Mar 18 Python
Python线程的两种编程方式
Apr 14 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
详解Python使用tensorflow入门指南
Feb 09 Python
python实现俄罗斯方块游戏
Mar 25 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Python函数装饰器实现方法详解
Dec 22 Python
用python打印菱形的实操方法和代码
Jun 25 Python
python实现抠图给证件照换背景源码
Aug 20 Python
Python-Flask:动态创建表的示例详解
Nov 22 Python
Python Selenium参数配置方法解析
Jan 19 Python
python读写数据读写csv文件(pandas用法)
Dec 14 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 Undefined index的问题
2009/06/01 PHP
php 面向对象的一个例子
2011/04/12 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
jquery为页面增加快捷键示例
2014/01/31 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
javascript几个易错点记录
2014/11/26 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
python多线程方式执行多个bat代码
2016/06/07 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
详解python读取和输出到txt
2019/03/29 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python实现名片管理系统
2020/02/14 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
年度考核自我鉴定
2014/03/19 职场文书
幼儿园区域活动总结
2014/05/08 职场文书