我正在尝试替换表单标记而不删除其子代。例如,我想转换它:
<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
提前感谢您的帮助!
答案 0 :(得分:3)
使用.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>