我正在尝试使用python和Beautiful Soup 4用一个新行替换某些html中的每个break标记。
该文档中包含<br>
,<br/>
和</br>
个标记,但由于Beautiful Soup处理标记的方式,每当它找到<br>
时,它会删除之间的所有内容它和它看到的下一个</br>
。
有解决方法吗?
答案 0 :(得分:2)
尝试使用HTMLParserTreeBuilder
作为构建器类:
from bs4 import BeautifulSoup
from bs4.builder import HTMLParserTreeBuilder
html_doc = """
<html>this is a test<br> ...between a start and end br... </br> a blank br: <br/> something else
"""
soup = BeautifulSoup(html_doc, builder=HTMLParserTreeBuilder())
print soup.prettify()
在没有给出builder=
参数时比较输出。
您可以确定bs4使用的构建器:
print type(soup.builder)
默认情况下,bs4似乎选择基于lxml的构建器。