我需要从HTML文档中获取纯文本,同时将<br>
元素视为换行符。 BeautifulSoup.text
不会处理<br>
和换行符。 HTML2Text非常好,但它转换为markdown。我怎么能接近这个?
答案 0 :(得分: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()
答案 1 :(得分:0)
您可以删除标签并将其替换为空格(如果需要):
import re
myString = re.sub(r"<(/)?br(/)?>", "\n", myString)
myString = re.sub(r"<[^>]*>", " ", myString)