广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 去除html标签的几种方法
  • 377
分享到

python 去除html标签的几种方法

几种方法标签python 2023-01-31 05:01:08 377人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

#! /usr/bin/python # -*- coding:utf-8 -*- ''' Created on 2013-12-18 @author: Java ''' import re from htmlParser import

#! /usr/bin/python
# -*- coding:utf-8 -*-
'''
Created on 2013-12-18

@author: Java
'''
import re
from htmlParser import HTMLParser
class FilterTag():
    def __init__(self):
        pass
    def filterHtmlTag(self,htmlStr):
        '''
        过滤html中的标签
        :param htmlStr:html字符串 或是网页源码
        '''
        self.htmlStr = 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注释
        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转换为换行
        blank_line=re.compile('\n+')#去掉多余的空行
        s = blank_line.sub('\n',s)
        s=re_h.sub('',s) #去掉HTML 标签
        s=re_comment.sub('',s)#去掉HTML注释
        #去掉多余的空行
        blank_line=re.compile('\n+')
        s=blank_line.sub('\n',s)
        filterTag = FilterTag()
        s=filterTag.replaceCharEntity(s)#替换实体
        print  s
    
    def replaceCharEntity(self,htmlStr):
        '''
        替换html中常用的字符实体
        使用正常的字符替换html中特殊的字符实体
        可以添加新的字符实体到CHAR_ENTITIES 中
    CHAR_ENTITIES是一个字典前面是特殊字符实体  后面是其对应的正常字符
        :param htmlStr:
        '''
        self.htmlStr = 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')#去除&;后的字符如(" "--->key = "nbsp")    去除&;后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
    
    def replace(self,s,re_exp,repl_string):
        return re_exp.sub(repl_string)
    
    
    def strip_tags(self,htmlStr):
        '''
        使用HTMLParser进行html标签过滤
        :param htmlStr:
        '''
        
        self.htmlStr = htmlStr
        htmlStr = htmlStr.strip()
        htmlStr = htmlStr.strip("\n")
        result = []
        parser = HTMLParser()
        parser.handle_data = result.append
        parser.feed(htmlStr)
        parser.close()
        return  ''.join(result)
    
    def stripTagSimple(self,htmlStr):
        '''
        最简单的过滤html <>标签的方法    注意必须是<任意字符>  而不能单纯是<>
        :param htmlStr:
        '''
        self.htmlStr = htmlStr
#         dr =re.compile(r'<[^>]+>',re.S)
        dr = re.compile(r'</?\w+[^>]*>',re.S)
        htmlStr =re.sub(dr,'',htmlStr)
        return  htmlStr

if __name__=='__main__':
#     s = file('Google.html').read()
    filters = FilterTag()
    print filters.stripTagSimple("<1>你好<html>")
    
                
                
                
        
        
        
        

--结束END--

本文标题: python 去除html标签的几种方法

本文链接: https://www.lsjlt.com/news/188263.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 去除html标签的几种方法
    #! /usr/bin/python # -*- coding:utf-8 -*- ''' Created on 2013-12-18 @author: Java ''' import re from HTMLParser import...
    99+
    2023-01-31
    几种方法 标签 python
  • Python去除html标签的几种方法总结
    目录Python去除html标签的方法python正则表达式去除html标签的属性总结Python去除html标签的方法 最近小说看得比较多,但是很多小说网站都存在各种小广告,看起来...
    99+
    2023-01-03
    Python去除html标签 Python html标签 html标签去除
  • 使用python去除HTML中标签的几种
    这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star github地址 待删除HTML示例标签如下: In [96]: test Out[96]: '<p>just for test</p&...
    99+
    2023-01-31
    几种 标签 python
  • 使用java去除html标签的方法
    这篇文章主要为大家展示了“使用java去除html标签的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“使用java去除html标签的方法”这篇文章吧。在java中,可以使用replaceAl...
    99+
    2023-06-15
  • Android中去掉标题栏的几种方法(三种)
    1.在java代码中 (SplashActivity继承AppCompatActivity时无效) 2.在manifest.xml中改Theme 3.先在style.xm...
    99+
    2022-06-06
    方法 标题栏 Android
  • php去除标签内的内容的方法
    这篇文章主要讲解了“php去除标签内的内容的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php去除标签内的内容的方法”吧!php去除标签内的内容的方法:1、使用“strip_html_...
    99+
    2023-06-20
  • List去重的几种方法
    list去重 现在设有Integer类型的ArrayList,list=[0,1,1,3,3,4,5] 1.使用contains //使用contains List li...
    99+
    2023-10-04
    list java 数据结构
  • 浅析去除"foum.php"尾巴的几种方法
    在网页开发过程中,你可能会遇到一些URL末尾带有"foum.php"的情况。这通常是因为网站使用了一些开源的论坛系统,而论坛页面的URL默认带有此参数。但是,在某些情况下,你可能会想要去除这个"forum.ph...
    99+
    2023-05-14
    php
  • Java中去除字符串空格的几种方法
    String.trim(): 它去掉的只是String首尾空格,内部不处理; 2、str.replace(" ", “”): 去掉所有空格,包括首尾、中间,但是又仅仅局限于一个空格 3、str.replaceAll(" +",...
    99+
    2023-09-04
    java servlet 开发语言
  • Python列表去重的几种方法整理
    请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法。 方法一:利用集合去重 ...
    99+
    2022-11-11
  • html中a标签的下划线怎么去除
    本篇内容介绍了“html中a标签的下划线怎么去除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 实例讲解使用css去除浮动的几种方法
    CSS布局中,float(浮动)是一个非常重要的属性,通过设置元素的浮动方向可以方便地实现页面布局效果。但是浮动元素也会带来一些问题,特别是在父元素没有设置高度时,子元素浮动可能会导致父元素高度塌陷,造成页面布局的混乱。因此,正确去除浮动也...
    99+
    2023-05-14
  • Oracle删除表的几种方法
    drop table books;的指令会将表放到回收站里,  用   flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to ...
    99+
    2022-10-18
  • JavaScript获取标签的几种方式小结
    目录js 获取标签2.通过标签名称获取标签。3.通过class获取标签,获取到的也是包含该class的标签集合4.通过选择器找到所有符合条件的标签集合。5.几种获取特殊标签的写法js...
    99+
    2023-02-17
    JavaScript获取标签 JavaScript标签获取
  • php去掉p标签的方法
    这篇文章主要介绍php去掉p标签的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php去掉p标签的方法:首先打开相应的PHP文件;然后通过php正则表达式“preg_replace("/|<\ p...
    99+
    2023-06-08
  • Python中删除文件的几种方法介绍
    本篇内容主要讲解“Python中删除文件的几种方法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中删除文件的几种方法介绍”吧!前言很多时候开发者需要删除文件。可能是他错误地创建了...
    99+
    2023-06-07
  • Python 字符串去除空格的五种方法
    在处理Python代码字符串的时候,我们常会遇到要去除空格的情况,所以就总结了多种方法供大家参考。 1、strip()方法 去除字符串开头或者结尾的空格 str = " Hel...
    99+
    2022-11-12
  • css怎么去掉a标签的下划线(两种方法)
    CSS是一种用于网页样式设计的语言,通过CSS可以自定义网页的各种样式效果。在网页设计中,经常会用到a标签,表示超链接。虽然a标签本身是不会产生下划线的,但是在一些浏览器中默认会加上下划线,影响美观性。那么如何去掉a标签的下划线呢?有两种方...
    99+
    2023-05-14
  • DEDECMS教程:去除列表页文章标题加粗标签的方法
    最近在用DEDEcms搭架网站的时候,我碰到这种情况:就是生成的列表模板中,列表文章标题全都加粗加黑了,这样看的特别扭。刚开始,我还以为是样式出了问题,我就把列表模板页面的样式检查了一遍,根本没有加粗标签。我用火狐浏览器...
    99+
    2022-06-12
    列表页 文章标题 加粗
  • Shell去除空行的4种方法
    有时我们在处理和查看文件时,经常会有很多空行,为了美观或是有需要时,就有必要把这些除行去掉了,方法如下: 1)用tr命令 cat 文件名 |tr -s ‘n' 2)用sed命令 cat 文件名 |se...
    99+
    2022-06-04
    空行 种方法 Shell
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作