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 MD5文件生成码
Jan 12 Python
python中引用与复制用法实例分析
Jun 04 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
python实现txt文件格式转换为arff格式
May 31 Python
Python3中bytes类型转换为str类型
Sep 27 Python
python实现扫描ip地址的小程序
Apr 16 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python环境下安装opencv库的方法
Mar 05 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Python更改pip镜像源的方法示例
Dec 01 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 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中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
javascript document.images实例
2008/05/27 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
React组件refs的使用详解
2018/02/09 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
python 自动重连wifi windows的方法
2018/12/18 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
辞职信标准格式
2015/02/27 职场文书
个人自荐书范文
2015/03/09 职场文书
创业计划书之美容店
2019/09/16 职场文书
利用python进行数据加载
2021/06/20 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL