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 命令行非阻塞输入的小例子
Sep 27 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
python中__slots__用法实例
Jun 04 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
Python调用服务接口的实例
Jan 03 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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中,文件上传
2006/12/06 PHP
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
PHP获取url的函数代码
2011/08/02 PHP
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
网页javascript精华代码集
2007/01/24 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
微信小程序日历效果
2018/12/29 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
python利用hook技术破解https的实例代码
2013/03/25 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python实现在线翻译
2020/06/18 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
写给保洁员表扬信
2014/01/08 职场文书
八年级英语教学反思
2014/01/09 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android