欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Python 实现类似PHP的strip_tags函数功能,并且可以自定义设置保留标签

程序员文章站 2022-05-25 15:18:26
...
最近在研究 Python ,发现用的还是很不习惯,很多PHP里面很简单的功能在Python 里面都得找半天,而且很多功能都得自己实现。

今天做个采集,需要过滤内容中的标签,搞了一下午,貌似终于搞出来了,测试了下达到了预想的效果,废话不多说贴上代码吧

from html.parser import HTMLParserdef strip_tags(html, save=None):    result = []    start = []    data = []    def starttag(tag, attrs):        if tag not in save:            return        start.append(tag)        if attrs:            j = 0            for attr in attrs:                attrs[j] = attr[0] + '="' + attr[1] + '"'                j += 1            attrs = ' ' + (' '.join(attrs))        else:            attrs = ''        result.append('')    def endtag(tag):        if start and tag == start[len(start) - 1]:            result.append('' + tag + '>')    parser = HTMLParser()    parser.handle_data = result.append    if save:        parser.handle_starttag = starttag        parser.handle_endtag = endtag    parser.feed(html)    parser.close()    for i in range(0, len(result)):        tmp = result[i].rstrip('\n')        tmp = tmp.lstrip('\n')        if tmp:            data.append(tmp)    return ''.join(data)

使用方法:

    result = strip_tags("""发生的杀毒足球比分直播竞彩足球篮球竞彩