python对html过滤处理的方法


Posted in Python onOctober 21, 2018

如下所示:

##过滤HTML中的标签
#将HTML中标签等信息去掉
#@param htmlstr HTML字符串.
def filter_tags(htmlstr):
 #先过滤CDATA
 re_cdata=re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA
 re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script
 re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style
 re_br=re.compile('<br\s*?/?>')#处理换行
 re_h=re.compile('</?\w+[^>]*>')#HTML标签
 re_comment=re.compile('<!--[^>]*-->')#HTML注释
 re_stopwords=re.compile('\u3000')#去除无用的'\u3000'字符
 s=re_cdata.sub('',htmlstr)#去掉CDATA
 s=re_script.sub('',s) #去掉SCRIPT
 s=re_style.sub('',s)#去掉style
 s=re_br.sub('\n',s)#将br转换为换行
 s=re_h.sub('',s) #去掉HTML 标签
 s=re_comment.sub('',s)#去掉HTML注释
 s=re_stopwords.sub('',s)
 #去掉多余的空行
 blank_line=re.compile('\n+')
 s=blank_line.sub('\n',s)
 s=replaceCharEntity(s)#替换实体
 return s

##替换常用HTML字符实体.
#使用正常的字符替换HTML中特殊的字符实体.
#你可以添加新的实体字符到CHAR_ENTITIES中,处理更多HTML字符实体.
#@param htmlstr HTML字符串.
def replaceCharEntity(htmlstr):
 CHAR_ENTITIES={'nbsp':' ','160':' ',
    'lt':'<','60':'<',
    'gt':'>','62':'>',
    'amp':'&','38':'&',
    'quot':'"','34':'"',}

 re_charEntity=re.compile(r'&#?(?P<name>\w+);')
 sz=re_charEntity.search(htmlstr)
 while sz:
  entity=sz.group()#entity全称,如>
  key=sz.group('name')#去除&;后entity,如>为gt
  try:
   htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1)
   sz=re_charEntity.search(htmlstr)
  except KeyError:
   #以空串代替
   htmlstr=re_charEntity.sub('',htmlstr,1)
   sz=re_charEntity.search(htmlstr)
 return htmlstr

以上这篇python对html过滤处理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬取网站数据保存使用的方法
Nov 20 Python
初学Python实用技巧两则
Aug 29 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
详解python日志输出使用配置文件格式
Feb 10 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
Python实现视频中添加音频工具详解
Dec 06 Python
一看就懂得Python的math模块
Oct 21 #Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 #Python
Python用5行代码写一个自定义简单二维码
Oct 21 #Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 #Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 #Python
用Django写天气预报查询网站
Oct 21 #Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 #Python
You might like
php,不用COM,生成excel文件
2006/10/09 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
Python基于PycURL实现POST的方法
2015/07/25 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
python绘制多个曲线的折线图
2020/03/23 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
《鸿门宴》教学反思
2014/04/22 职场文书
2014年教学工作总结
2014/11/13 职场文书
董事长新年致辞
2015/07/29 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL