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

我需要从HTML文档中获取纯文本,同时将<br>元素视为换行符。BeautifulSoup.text不处理<br>和换行符。HTML2Text非常不错,但是可以转换为markdown。我还能如何处理呢?


慕田峪9158850
浏览 230回答 2
2回答

慕少森

我喜欢使用以下方法。您可以.replace('<br>','\r\n')对字符串进行手动操作,然后再将其传递strip_tags(html)给新行。从这个问题:from HTMLParser import HTMLParserclass MLStripper(HTMLParser):&nbsp; &nbsp; def __init__(self):&nbsp; &nbsp; &nbsp; &nbsp; self.reset()&nbsp; &nbsp; &nbsp; &nbsp; self.fed = []&nbsp; &nbsp; def handle_data(self, d):&nbsp; &nbsp; &nbsp; &nbsp; self.fed.append(d)&nbsp; &nbsp; def get_data(self):&nbsp; &nbsp; &nbsp; &nbsp; return ''.join(self.fed)def strip_tags(html):&nbsp; &nbsp; s = MLStripper()&nbsp; &nbsp; s.feed(html)&nbsp; &nbsp; return s.get_data()

潇湘沐

您可以删除标签,并用空格替换它们(如果需要):import remyString = re.sub(r"<(/)?br(/)?>", "\n", myString)myString = re.sub(r"<[^>]*>", " ", myString)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python