Прекрасный суп вставляем_ до и после не работы - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть два тега 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 голосов
/ 21 сентября 2018
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")

Чтобы разместить тег для вставки внутри тега p, вам необходимо:

new_p.p.append(embed)

Чтобы разместить тег для вставки сразу после тега p, необходимо:

new_p.p.insert_after(embed)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...