2159|1

16

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Python对HTML转义字符进行反转义 [复制链接]

 
什么是转义字符

在 HTML 中 <、>、& 等字符有特殊含义(<,> 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字符串(Escape Sequence),例如 < 的转义字符是 <,浏览器渲染 HTML 页面时,会自动把转移字符串换成真实字符。

转义字符(Escape Sequence)由三部分组成:第一部分是一个 & 符号,第二部分是实体(Entity)名字,第三部分是一个分号。 比如,要显示小于号(<),就可以写< 。

显示字符    说明  转义字符

<   小于  <

空格   

<   小于  <

>   大于  >

&   &符号 &

"   双引号 "

©   版权  ©

®   已注册商标   ®

Python 转义字符串反转义

用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义的模块是 HTMLParser。


  1. 1
  2. 2
  3. 3
  4. 4
  5. # Python2
  6. import HTMLParser
  7. >>> HTMLParser().unescape('param=p1¶m=p2')
  8. 'param=p1¶m=p2'
复制代码

Python3 HTMLParser 模块迁移到了 html.parser



  1. 1
  2. 2
  3. 3
  4. 4
  5. # Python3
  6. >>> from html.parser import HTMLParser
  7. >>> HTMLParser().unescape('param=p1¶m=p2')
  8. [p=26, null, left][color=rgb(51, 51, 51)][font=-apple-system, BlinkMacSystemFont, &quot;]'param=p1¶m=p2'
复制代码
到 python3.4 以后的版本,在 html 模块新增了 unescape 方法。



  1. 1
  2. 2
  3. 3
  4. 4
  5. # Python3.4
  6. >>> import html
  7. >>> html.unescape('param=p1¶m=p2')
  8. [p=26, null, left][color=rgb(51, 51, 51)][font=-apple-system, BlinkMacSystemFont, &quot;]'param=p1¶m=p2'
复制代码
推荐最后一种写法,因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用了,意味着之后的版本会被彻底移除。

另外,xml的sax模块也有支持反转义的函数

  1. [/font][/color][/p]1
  2. 2
  3. 3
  4. >>> from xml.sax.saxutils import unescape
  5. >>> unescape('param=p1¶m=p2')
  6. 'param=p1¶m=p2'
复制代码

最新回复

很有用的基础  详情 回复 发表于 2018-2-27 23:24
点赞 关注
 
 

回复
举报

1903

帖子

0

TA的资源

版主

沙发
 
很有用的基础
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表