为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中将HTML转换为无标记的文本?

如何在Python中将HTML转换为无标记的文本?

慕田峪9158850 2021-03-19 13:16:34
我需要从HTML文档中获取纯文本,同时将<br>元素视为换行符。BeautifulSoup.text不处理<br>和换行符。HTML2Text非常不错,但是可以转换为markdown。我还能如何处理呢?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

我喜欢使用以下方法。您可以.replace('<br>','\r\n')对字符串进行手动操作,然后再将其传递strip_tags(html)给新行。


从这个问题:


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()


查看完整回答
反对 回复 2021-03-31
?
潇湘沐

TA贡献1816条经验 获得超6个赞

您可以删除标签,并用空格替换它们(如果需要):


import re


myString = re.sub(r"<(/)?br(/)?>", "\n", myString)

myString = re.sub(r"<[^>]*>", " ", myString)


查看完整回答
反对 回复 2021-03-31
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信