我有两个Beautiful Soup标签,我试图一个接一个地放置,所以我在使用insert_before
(还尝试了insert_after
作为另一种选择)。该功能似乎对任何一个标签都没有任何影响。我希望结果是,在函数调用之后,对象new_p
在现有embed
标记之后包括<p>
。
这显示了终端(在断点内)的事务状态(对象类型,功能的作用)–有什么想法吗?
ipdb> type(embed)
<class 'bs4.element.Tag'>
ipdb> embed
<embed alt=" Refugee Tales)" caption=" Refugee Tales)" embedtype="image" format="fullwidth" id="1691"/>
ipdb> type(new_p)
<class 'bs4.element.Tag'>
ipdb> new_p
<p> Refugee Tales walk (Photo: Refugee Tales)</p>
ipdb> type(html)
<class 'bs4.BeautifulSoup'>
ipdb> new_p in html
True
ipdb> embed in html
False
ipdb> new_p.insert_before(embed)
ipdb> embed in html
True
ipdb> new_p
<p> Refugee Tales walk (Photo: Refugee Tales)</p>
ipdb> embed
<embed alt=" Refugee Tales)" caption=" Refugee Tales)" embedtype="image" format="fullwidth" id="1691"/>
ipdb> new_p.insert_after(embed)
ipdb> new_p
<p> Refugee Tales walk (Photo: Refugee Tales)</p>
ipdb> embed
<embed alt=" Refugee Tales)" caption=" Refugee Tales)" embedtype="image" format="fullwidth" id="1691"/>
名称:beautifulsoup4 版本:4.6.0
答案 0 :(得分:1)
from bs4 import BeautifulSoup
html = "<p> Refugee Tales walk (Photo: Refugee Tales)</p>"
new_p = BeautifulSoup(html, "html")
embed=new_p.new_tag("embed",alt=" Refugee Tales)", caption=" Refugee Tales)", embedtype="image", format="fullwidth", id="1691")
要将embed标签放在p标签内,您需要:
new_p.p.append(embed)
要将embed标签放在p标签之后,您需要:
new_p.p.insert_after(embed)