python处理html转义字符的方法详解


Posted in Python onJuly 01, 2016

本文实例讲述了python处理html转义字符的方法。分享给大家供大家参考,具体如下:

最近在用Python处理网页数据时,经常遇到一些html转义字符(也叫html字符实体),例如<> 等。字符实体一般是为了表示网页中的预留字符,比如>用>表示,防止被浏览器认为是标签,具体参考w3school的HTML 字符实体。虽然很有用,但是它们会极度影响对于网页数据的解析。为了处理这些转义字符,有如下解决方案:

1、使用HTMLParser处理

import HTMLParser
html_cont = " asdfg>123<"
html_parser = HTMLParser.HTMLParser()
new_cont = html_parser.unescape(html_cont)
print new_cont #new_cont = " asdfg>123<"

转换回去(只是空格转不回去了):

import cgi
new_cont = cgi.escape(new_cont)
print new_cont #new_cont = " asdfg>123<"

2、直接挨个替换

html_cont = " asdfg>123<"
new_cont = new_cont.replace(' ', ' ')
print new_cont #new_cont = " asdfg>123<"
new_cont = new_cont.replace('>', '>')
print new_cont #new_cont = " asdfg>123<"
new_cont = new_cont.replace('<', '<')
print new_cont #new_cont = " asdfg>123<"

不知道还有没有更好的办法。

另外stackoverflow上给出了在xml中处理转义字符的解答:python - What's the best way to handle  -like entities in XML documents with lxml? - Stack Overflow。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
Python中无限循环需要什么条件
May 27 Python
为什么python比较流行
Jun 19 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
python简单读取大文件的方法
Jul 01 #Python
python编码总结(编码类型、格式、转码)
Jul 01 #Python
Python编码类型转换方法详解
Jul 01 #Python
Python面向对象编程中关于类和方法的学习笔记
Jun 30 #Python
Python中的time模块与datetime模块用法总结
Jun 30 #Python
详解Swift中属性的声明与作用
Jun 30 #Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 #Python
You might like
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Json解析的方法小结
2016/06/22 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python引用DLL文件的方法
2015/05/11 Python
Python NumPy库安装使用笔记
2015/05/18 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
浅谈Python peewee 使用经验
2017/10/20 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
夏季奶茶店创业计划书
2014/01/16 职场文书
创业计划书模版
2014/02/05 职场文书
军训自我鉴定范文
2014/02/13 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
高中社区服务活动报告
2015/02/05 职场文书
个人年底工作总结
2015/03/10 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
总结高并发下Nginx性能如何优化
2021/11/01 Servers
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技