如何使用 BeautifulSoup 添加 <br> 标签?

How to add <br> tags with BeautifulSoup?

假设我有

<p>Hello World</p>

可以 BeautifulSoup 添加一个
标签吗?

<br><p>Hello World</p>

最初我可以通过以下方式解决这个问题:

soup = BeautifulSoup("<p>Hello World<p>")
soup = BeautifulSoup(re.compile('(<p>)', '<br>', soup.prettify())

但问题是在更复杂的 html 的实际使用中,.prettify() 通过添加额外的空格和行弄乱了 html。

我查看了文档,但它甚至没有提到

<br>

根本没有标签。

可以使用soup.insert()函数

>>> br = soup.new_tag('br')
>>> br
<br/>
>>> soup = BeautifulSoup("<p>Hello World</p>")
>>> soup.insert(0,br)
>>> soup
<br/><p>Hello World</p>

insert() 函数在任意数字位置插入标签。这里我们指定为 0 所以它被插入到开头。