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 相关文章推荐
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
python字典DICT类型合并详解
Aug 17 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python对象转换为json的方法步骤
Apr 25 Python
eclipse创建python项目步骤详解
May 10 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
在python中修改.properties文件的操作
Apr 08 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
Pyhton模块和包相关知识总结
May 12 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
移动端js图片查看器
2016/11/17 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
vue写一个组件
2018/04/09 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python实现文件的分割与合并
2019/08/29 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
中专毕业生自荐信
2013/11/16 职场文书
高中毕业自我评价
2014/02/08 职场文书
服务行业口号
2014/06/11 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
迎新生晚会主持词
2015/06/30 职场文书