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模块详解
Sep 15 Python
python连接数据库的方法
Oct 19 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
Python生成器generator用法示例
Aug 10 Python
python版本单链表实现代码
Sep 28 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python内置函数locals和globals对比
Apr 28 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
php中memcache 基本操作实例
2015/05/17 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
jquery向后台提交数组的代码分析
2020/02/20 jQuery
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
python使用pil生成缩略图的方法
2015/03/26 Python
Python在线运行代码助手
2016/07/15 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python flask中静态文件的管理方法
2018/03/20 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
numba提升python运行速度的实例方法
2021/01/25 Python
美国知名生活购物网站:Goop
2017/11/03 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
文职个人求职信范文
2013/09/23 职场文书
幼师专业毕业生自荐信
2013/09/29 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
项目考察欢迎辞
2014/01/17 职场文书
公司总经理岗位职责
2014/03/15 职场文书
我的小天地教学反思
2014/04/30 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
检讨书格式
2015/05/07 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫