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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
python中kmeans聚类实现代码
Feb 23 Python
python3个性签名设计实现代码
Jun 19 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python提取照片坐标信息的实例代码
Aug 14 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Python求正态分布曲线下面积实例
Nov 20 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 Python
粗暴解决CUDA out of memory的问题
May 22 Python
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 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
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
python简单操作excle的方法
2018/09/12 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
pytorch中的inference使用实例
2020/02/20 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
合伙经营协议书范本
2014/04/18 职场文书
求职信标题怎么写
2014/05/26 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
环卫工作个人总结
2015/03/04 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏