1

我正在使用以下内容在 Python 中去除 HTML 标签,但它也删除了 & (与号),我需要它们保留。有任何想法吗?

从 HTMLParser 导入 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()


(另外,代码块不合作,请想象最后三行的缩进)

4

1 回答 1

0

正则表达式替换听起来是一种简单的方法。

import re
text = '<b>foo&bar <a href="http://www.example.com/">link</a></b>'
re.sub(r'<.+?>', '', text)
# foo&bar link

可能有一些我没有想到的特殊情况需要更复杂的正则表达式。

于 2013-10-23T18:57:17.973 回答