如何在美丽的汤4中处理<br/> <br/>和?

时间:2014-12-18 22:24:18

标签: python html parsing web-scraping beautifulsoup

我正在尝试使用python和Beautiful Soup 4用一个新行替换某些html中的每个break标记。

该文档中包含<br><br/></br>个标记,但由于Beautiful Soup处理标记的方式,每当它找到<br>时,它会删除之间的所有内容它和它看到的下一个</br>

有解决方法吗?

1 个答案:

答案 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的构建器。