使用 BeautifulSoup 替换标签时保留子项

Keep children when replacing tag using BeautifulSoup

我正在尝试替换表单标签而不删除其子标签。例如,我想将其转换为:

<form>
    <input type="text"/>
    <input type="text"/>
</form>

为此:

<p>
    <input type="text"/>
    <input type="text"/>
</p>

但我得到的是:

<p></p>

我现在正在尝试这样做:

from bs4 import BeautifulSoup

content = '<form><input type="text"/><input type="text"/></form>'
soup = BeautifulSoup(content)

old_form = soup.find('form')
new_form = soup.new_tag('p')

old_form.replace_with(new_form)  
print soup

在此先感谢您的帮助!

使用 .name 属性 适合我:

from bs4 import BeautifulSoup

content = '<form><input type="text"/><input type="text"/></form>'
soup = BeautifulSoup(content)

form = soup.find('form')
form.name = 'p'

print form.prettify()
<p>
 <input type="text"/>
 <input type="text"/>
</p>