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中返回字典键的值的values()方法使用
May 22 Python
python之PyMongo使用总结
May 26 Python
python+opencv实现动态物体识别
Jan 09 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
python识别验证码的思路及解决方案
Sep 13 Python
python3.8动态人脸识别的实现示例
Sep 21 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
php精度计算的问题解析
2019/06/21 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
python爬虫爬取网页表格数据
2018/03/07 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
python微信公众号开发简单流程实现
2020/03/09 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
项目管理计划书
2014/01/09 职场文书
房地产融资计划书
2014/01/10 职场文书
信息工作经验交流材料
2014/05/28 职场文书
金融专业求职信
2014/08/05 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python