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解析xml成对应的html示例分享
Apr 02 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
PyQt5实现简单的计算器
May 30 Python
解决keras加入lambda层时shape的问题
Jun 11 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
python 基于opencv实现高斯平滑
Dec 18 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中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
form自动提交实例讲解
2017/07/10 PHP
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
python备份文件的脚本
2008/08/11 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
详解Python3中ceil()函数用法
2019/02/19 Python
Python pandas用法最全整理
2019/08/04 Python
Python 实现数组相减示例
2019/12/27 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
python实现图片转字符画
2021/02/19 Python
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
优秀毕业生自我鉴定
2014/01/19 职场文书
自主招生推荐信范文
2014/05/10 职场文书
销售队伍口号
2014/06/11 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL