Beautifulsoup 兄弟结构与 br 标签 [英] Beautifulsoup sibling structure with br tags
本文介绍了Beautifulsoup 兄弟结构与 br 标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 BeautifulSoup Python 库解析 HTML 文档,但结构被 <br>
标签扭曲.让我给你举个例子.
输入 HTML:
一些文字 <br><跨度>更多的文字</span><br><跨度>和更多文本 </span>
BeautifulSoup 解释的 HTML:
一些文字<br><跨度>更多的文字</span><br><跨度>和更多文本 </span></br></br>
在源代码中,跨度可以被视为兄弟姐妹.解析后(使用默认解析器),跨度突然不再是兄弟,因为 br 标签成为结构的一部分.
我能想到的解决方案是在将 html 倒入 Beautifulsoup 之前完全剥离 <br>
标签,但这似乎不是很优雅,因为它需要我改变输入.有什么更好的方法来解决这个问题?
解决方案
最好的办法是 extract()
换行.这比你想象的要容易:)
... 一些文字 <br>... <span>更多的文字</span><br>... <span>和更多文本 </span>... </div>""">>>汤 = BS(html)>>>对于soup.find_all('br') 中的换行符:... linebreak.extract()...<br/><br/>>>>打印汤.美化()<身体><div>一些文字<跨度>还有一些文字</span><跨度>和更多的文字</span>