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 不关闭控制台的实现方法
Oct 23 Python
python实现随机密码字典生成器示例
Apr 09 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
详解Python字符串对象的实现
Dec 24 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
学生信息管理系统Python面向对象版
Jan 30 Python
使用python3构建文件传输的方法
Feb 13 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 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
php win下Socket方式发邮件类
2009/08/21 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
npm qs模块使用详解
2020/02/07 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
基于PyTorch中view的用法说明
2021/03/03 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
平面设计的岗位职责
2013/11/08 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2014年财务工作总结范文
2014/11/11 职场文书