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时MySQLdb报错的问题描述及解决方法
Mar 20 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
Pytorch之view及view_as使用详解
Dec 31 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
jupyter notebook的安装与使用详解
May 18 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
python Timer 类使用介绍
Dec 28 Python
如何查看python关键字
Jan 17 Python
python FTP编程基础入门
Feb 27 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解析html的实现代码
2011/08/08 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现针对中文排序的方法
2017/05/09 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
python求前n个阶乘的和实例
2020/04/02 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
股权转让协议书
2014/04/12 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2015毕业寄语大全
2015/02/26 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers