2012-06-15 91 views
2

刪除標籤我想刪除除從我的字符串使用python 所有的HTML標籤我用這個:的Django從字符串蟒蛇

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標籤。

+2

如何令人耳目一新,我期待RegEx。很高興被驚訝。 –

+0

[lxml.html](http://lxml.de/)可以爲你做到這一點。 – dav1d

回答

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)