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中字典dict常用操作方法实例总结
Apr 04 Python
Python基于DES算法加密解密实例
Jun 03 Python
python实现微信自动回复功能
Apr 11 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python实现二维数组的对角线遍历
Mar 02 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
pytorch数据预处理错误的解决
Feb 20 Python
python属于解释语言吗
Jun 11 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
python正则表达式re.search()的基本使用教程
May 21 Python
python获取带有返回值的多线程
May 02 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 5.5 新特性
2013/07/02 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php简单生成随机数的方法
2015/07/30 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
浅谈python字符串方法的简单使用
2016/07/18 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
标准毕业生自荐信
2014/06/24 职场文书
党支部承诺书
2015/01/20 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server