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 09 Python
Java分治归并排序算法实例详解
Dec 12 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
目前最全的python的就业方向
Jun 05 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
python实现多张图片拼接成大图
Jan 15 Python
Python中的self用法详解
Aug 06 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
python 简单的调用有道翻译
Nov 25 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中进行身份认证
2006/10/09 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python内置函数的用法实例教程
2014/09/08 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
COS美国官网:知名服装品牌
2019/04/08 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
高一历史教学反思
2014/01/13 职场文书
学校介绍信范文
2014/01/14 职场文书
毕业实习评语
2014/02/10 职场文书
质量月口号
2014/06/20 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
品质保证书格式
2015/02/28 职场文书
红色经典电影观后感
2015/06/18 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
pytorch中的 .view()函数的用法介绍
2022/03/17 Python
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫