django从字符串python中删除标签

时间:2012-06-15 12:37:04

标签: python django html-parser

我想删除所有html标签,除了我的字符串与python 我用这个:

from HTMLParser import HTMLParser   

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

但这会删除我的所有html标签。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想剥离html标签,但保留一些具体的标签? 如果是这种情况 - 那么只需继续监视开始/结束标记,并在需要时处理它们。例如:

MY_TAGS = ["tag1", "tag2"]

MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

    def handle_starttag(self, tag, attrs):
        if tag in MY_TAGS:
            self.fed.append("<%s>" % tag) # tag is only string, no < or >.
    def handle_endtag(self, tag):
        if tag in MY_TAGS:
            self.fed.append("</%s>" % tag)