|
import html |
|
import re |
|
from html.parser import HTMLParser |
|
|
|
|
|
|
|
|
|
class HTMLTagRemover(HTMLParser): |
|
def __init__(self): |
|
super().__init__() |
|
self.reset() |
|
self.fed = [] |
|
|
|
def handle_data(self, data): |
|
self.fed.append(data) |
|
|
|
def get_data(self): |
|
return "\n".join(self.fed) |
|
|
|
|
|
def remove_html_tags(text): |
|
parser = HTMLTagRemover() |
|
parser.feed(text) |
|
return parser.get_data() |
|
|
|
|
|
def remove_html_tags_re(text): |
|
text = html.unescape(text) |
|
html_tags_pattern = re.compile(r"</?([a-zA-Z1-9]+)[^>]*>") |
|
return re.sub(html_tags_pattern, " ", text) |
|
|
|
|
|
if __name__ == "__main__": |
|
input_text = """ |
|
<h1>一个标题</h1> 这是一段包含<code>标签</code>的文本。 <code>&</code> |
|
<设定> |
|
一些文本 |
|
</设定> |
|
""" |
|
|
|
output_text = remove_html_tags_re(input_text) |
|
print(output_text) |
|
|