4

我需要从 HTML 文档中获取纯文本,同时将<br>元素视为换行符。BeautifulSoup.text不处理<br>和换行。HTML2Text 相当不错,但它会转换为降价。我还能怎么做呢?

4

2 回答 2

4

我喜欢使用下面的方法。您可以.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()
于 2013-06-09T16:43:01.510 回答
0

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

import re

myString = re.sub(r"<(/)?br(/)?>", "\n", myString)
myString = re.sub(r"<[^>]*>", " ", myString)
于 2013-06-09T16:40:05.867 回答