Запрет BS4 для добавления дубликатов тегов - PullRequest
0 голосов
/ 09 марта 2020

Я добавляю фрагмент HTML к существующим элементам HTML, а BS4 дублирует элементы внутри него. Как это предотвратить?

Упрощенный код

from bs4 import BeautifulSoup as bs4
html = bs4("<!DOCTYPE html>", "html5lib")
message =  bs4("<span>Complete all required fields.<span>", "html.parser")
html.select("body")[0].append(message)
print(html.prettify())

Вывод

<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
  <span>
   Complete all required fields.
   <span>
   </span>
  </span>
 </body>
</html>

Ожидается

<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
  <span>
   Complete all required fields.
  </span>
 </body>
</html>

1 Ответ

1 голос
/ 09 марта 2020

Вы все сделали правильно, но забыли закрыть интервал

from bs4 import BeautifulSoup as bs4
html = bs4("<!DOCTYPE html>", "html5lib")
message =  bs4("<span>Complete all required fields.</span>", "html.parser")#changed
html.select("body")[0].append(message)
print(html.prettify())

o/p:
<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
<span>
 Complete all required fields.
</span>
 </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...