在 Python 中从字符串中剥离 HTML 标签
在 Python 中,有多种情况下您可能需要从字符串中删除 HTML 标签以提取其内容。让我们探讨这个问题的解决方案。
假设您使用 mechanize 库检索 HTML 内容,如示例代码段中所示。内容的每一行都包含 HTML 标签和文本。要仅提取文本,我们需要剥离标签。
一种选择是使用自定义函数来执行此任务。函数 strip_tags 利用 HTMLParser 类创建一个处理 HTML 内容的解析器。解析器仅提取标签内的数据并将其累积在 StringIO 对象中。
以下是 Python 3 的代码片段:
from io import StringIO from html.parser import HTMLParser class MLStripper(HTMLParser): def __init__(self): super().__init__() self.reset() self.strict = False self.convert_charrefs= True self.text = StringIO() def handle_data(self, d): self.text.write(d) def get_data(self): return self.text.getvalue() def strip_tags(html): s = MLStripper() s.feed(html) return s.get_data()
对于 Python 2,请使用以下代码:
from HTMLParser import HTMLParser from StringIO import StringIO class MLStripper(HTMLParser): def __init__(self): self.reset() self.text = StringIO() def handle_data(self, d): self.text.write(d) def get_data(self): return self.text.getvalue() def strip_tags(html): s = MLStripper() s.feed(html) return s.get_data()
通过将 HTML 内容传递给此函数,可以有效地删除标签并仅保留文本内容。
以上是如何在Python中高效地去除字符串中的HTML标签?的详细内容。更多信息请关注PHP中文网其他相关文章!