我需要从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()
潇湘沐
TA贡献1816条经验 获得超6个赞
您可以删除标签,并用空格替换它们(如果需要):
import re
myString = re.sub(r"<(/)?br(/)?>", "\n", myString)
myString = re.sub(r"<[^>]*>", " ", myString)
添加回答
举报
0/150
提交
取消