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实现定制交互式命令行的方法
Jul 03 Python
python线程、进程和协程详解
Jul 19 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
pandas 透视表中文字段排序方法
Nov 16 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
Python插件机制实现详解
May 04 Python
Python基于pandas爬取网页表格数据
May 11 Python
python中什么是面向对象
Jun 11 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
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
vue axios同步请求解决方案
2017/09/29 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
详解Python字符串切片
2019/05/20 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python 调试冷知识(小结)
2019/11/11 Python
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
比利时家具购买网站:Home24
2019/01/03 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
小学生新学期寄语
2014/01/19 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
合作协议书范文
2014/08/20 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
电工实训心得体会
2016/01/14 职场文书
《刷子李》教学反思
2016/02/20 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
使用refresh_token实现无感刷新页面
2022/04/26 Javascript