首页 > 后端开发 > Python教程 > 如何在Python中高效地去除字符串中的HTML标签?

如何在Python中高效地去除字符串中的HTML标签?

Patricia Arquette
发布: 2024-12-06 22:47:11
原创
299 人浏览过

How Can I Efficiently Remove HTML Tags from Strings in Python?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板