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进阶教程之动态类型详解
Aug 30 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
python 实现turtle画图并导出图片格式的文件
Dec 07 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python时间序列数据转为timestamp格式的方法
Aug 03 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自建函数的详解
2013/06/06 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
基于Bootstrap表单验证功能
2017/11/17 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JavaScript回调函数callback用法解析
2020/01/14 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python实现宿舍管理系统
2019/11/22 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
演讲比赛获奖感言
2014/02/02 职场文书
社区八一活动方案
2014/02/03 职场文书
中学生励志演讲稿
2014/04/26 职场文书
残疾人小组计划书
2014/04/27 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
入党转正介绍人意见
2015/06/03 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
安全生产培训心得体会
2016/01/18 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby