美丽的汤insert_before和之后不工作

时间:2018-09-21 13:39:43

标签: python beautifulsoup

我有两个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

1 个答案:

答案 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)