Python:使用正则去除HTML标签(转)
利用正则式处理,不知道会不会有性能问题,没有经过太多测试。
目前我有很多还是使用BeautifulSoup进行这种处理。
HTML实体处理的只是用于处理一些常用的实体。
1 # -*- coding: utf-8-*- 2 import re 3 ##过滤HTML中的标签 4 #将HTML中标签等信息去掉 5 #@param htmlstr HTML字符串. 6 def filter_tags(htmlstr): 7 #先过滤CDATA 8 re_cdata=re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA 9 re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script 10 re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style 11 re_br=re.compile('<br\s*?/?>')#处理换行 12 re_h=re.compile('</?\w+[^>]*>')#HTML标签 13 re_comment=re.compile('<!--[^>]*-->')#HTML注释 14 s=re_cdata.sub('',htmlstr)#去掉CDATA 15 s=re_script.sub('',s) #去掉SCRIPT 16 s=re_style.sub('',s)#去掉style 17 s=re_br.sub('\n',s)#将br转换为换行 18 s=re_h.sub('',s) #去掉HTML 标签 19 s=re_comment.sub('',s)#去掉HTML注释 20 #去掉多余的空行 21 blank_line=re.compile('\n+') 22 s=blank_line.sub('\n',s) 23 s=replaceCharEntity(s)#替换实体 24 return s 25 26 ##替换常用HTML字符实体. 27 #使用正常的字符替换HTML中特殊的字符实体. 28 #你可以添加新的实体字符到CHAR_ENTITIES中,处理更多HTML字符实体. 29 #@param htmlstr HTML字符串. 30 def replaceCharEntity(htmlstr): 31 CHAR_ENTITIES={'nbsp':' ','160':' ', 32 'lt':'<','60':'<', 33 'gt':'>','62':'>', 34 'amp':'&','38':'&', 35 'quot':'"','34':'"',} 36 37 re_charEntity=re.compile(r'&#?(?P<name>\w+);') 38 sz=re_charEntity.search(htmlstr) 39 while sz: 40 entity=sz.group()#entity全称,如> 41 key=sz.group('name')#去除&;后entity,如>为gt 42 try: 43 htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1) 44 sz=re_charEntity.search(htmlstr) 45 except KeyError: 46 #以空串代替 47 htmlstr=re_charEntity.sub('',htmlstr,1) 48 sz=re_charEntity.search(htmlstr) 49 return htmlstr 50 51 def repalce(s,re_exp,repl_string): 52 return re_exp.sub(repl_string,s) 53 54 if __name__=='__main__': 55 s=file('Google.htm').read() 56 news=filter_tags(s) 57 print news
输出结果:
Google网页 图片 地图 资讯 视频 财经 更多 博客 生活 热榜 网站导航 日历 照片 文档 协作平台 输入法 工具栏 软件精选 更多 个性化首页 | 登录
高级搜索
使用偏好
语言工具所有网页 中文网页 简体中文网页 中国的网页
广告计划 – Google 大全 – Google.com in English2009 – 隐私权 – ICP证合字B2-20070004号
转载于:https://www.cnblogs.com/mmix2009/p/3220990.html
Python:使用正则去除HTML标签(转)相关推荐
- 去除a链接+java正则_JavaScript实现正则去除a标签并保留内容的方法【测试可用】...
本文实例讲述了JavaScript实现正则去除a标签并保留内容的方法.分享给大家供大家参考,具体如下: 一.问题: 有如下HTML代码,要求用正则去除a标签,只留下内容 //www.jb51.net ...
- python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...
# -*- coding: utf-8-*- import re ##过滤HTML中的标签 #将HTML中标签等信息去掉 #@param htmlstr HTML字符串. def filter_tag ...
- 正则去除HTML标签
正则匹配html标签简单的思路就是:匹配所有<>里的不是>的字符.这样就能保证匹配到的那些<...>里面不会再有尖括号. 描述有点绕,看下代码: var reg = /& ...
- python爬虫正则匹配td标签中的内容,以及一些常用的正则
'<td class="dd"><a href="#">Test</a></td>' 格式如上 正则如下: td ...
- php 正则替换style,php正则去除js,class,id,style标签代码
在写xml的时候,文档要求内容里面只要图片和段落就可以了,其他的css,js什么的都不需要. 所以,在输出的时候,就要用正则去过滤掉不需要的标签代码. 第一种:php正则去除js标签代码.$preg ...
- python正则匹配html标签_Python正则获取、过滤或者替换HTML标签的方法
本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下 python正则表达式关键内容: python正则表达式转义符: . 匹配除换行符以外的任意字符 ...
- Python正则去除中英文标点的操作手法
我们在用Python制作一些SEO小工具的时候总是会和文章打交道,大家知道通过Python直接采集,或者通过火车头采集文章的时候,为了保全文章的主题内容可以完全的采集到,文章的内容里面都是有很多的标点 ...
- php 去除标签内样式,PHP去除html标签,php标记及css样式代码参考
语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 解析:本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML ...
- php去除html标签 空白,php使用strip_tags()去除html标签仍有空白的解决方法
在项目的时候经常遇到html去除之后仍然有空白,吾爱编程接下来通过以下实例讲述了php使用strip_tags()去除html标签仍有空白的解决方法.具体如下: $subject = strip_ta ...
- php去除img,PHP如何去除IMG标签?_后端开发
go语言中一些字符串操作介绍_后端开发 Go语言中字符串的字节使用UTF-8编码表示Unicode文本,因此Go语言字符串是变宽字符序列,本文就来为大家介绍一些go语言中字符串的操作. PHP如何去除 ...
最新文章
- 达摩院基于元学习的对话系统
- CTFshow php特性 web132
- 第七周实践项目4 队列数组
- 服务器监控报警系统软件设计,船舶机舱监控报警系统软件设计与实现
- linux 打开端口1935,CentOS服务器开放端口
- scrapy-redis
- 怎么用matlab处理数据,如何用Matlab处理.wfm格式的数据
- 网址被微信拦截怎么办 微信屏蔽的域名如何正常访问
- 与IO相关的等待事件troubleshooting-系列9
- SAP CRM One Order CLOSING date change debug
- 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
- 组策略 之 恢复默认组策略对象命令
- weblogic登录验证被拒绝_腾讯游戏:疑似未成年人登录和支付时需人脸识别验证...
- mysql中使用触发器实例
- awk中RS,ORS,FS,OFS区别与联系
- Android音乐播放模式切换-外放、听筒、耳机
- 什么是jQuery,jQuery选择器
- chinapay java_ECSHOP 银联电子支付(ChinaPay)插件 掉用JAVA签名
- Catalina 10.15.7屏蔽更新提示
- Oracle数据库基本常用命令