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中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python实现的矩阵类实例
Aug 22 Python
Python列表删除的三种方法代码分享
Oct 31 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
python学生管理系统学习笔记
Mar 19 Python
学Python 3的理由和必要性
Nov 19 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
Python中的__init__作用是什么
Jun 09 Python
Python将字典转换为XML的方法
Aug 01 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
python如何利用paramiko执行服务器命令
Nov 07 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
中国第一家无线电行
2021/03/01 无线电
桌面中心(二)数据库写入
2006/10/09 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python time模块用法实例详解
2014/09/11 Python
总结Python编程中函数的使用要点
2016/03/20 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
会计大学生职业生涯规划书范文
2014/01/13 职场文书
新书吧创业计划书
2014/01/31 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
python办公自动化之excel的操作
2021/05/23 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python