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怎么学好python?
Oct 07 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
详解Python中的变量及其命名和打印
Mar 11 Python
python实现读取大文件并逐行写入另外一个文件
Apr 19 Python
python 二维数组90度旋转的方法
Jan 28 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
如何通过python的fabric包完成代码上传部署
Jul 29 Python
python根据多个文件名批量查找文件
Aug 13 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
Python基于execjs运行js过程解析
Nov 27 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python 查找字符串是否存在实例详解
2017/01/20 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
opencv与numpy的图像基本操作
2019/03/08 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
django 模版关闭转义方式
2020/05/14 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
EJB面试题
2015/07/28 面试题
对标管理实施方案
2014/03/12 职场文书
关于读书的演讲稿
2014/05/07 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang