BeautifulSoup: могу ли я сделать предварительную проверку без добавления дополнительных тегов? - PullRequest
1 голос
/ 21 февраля 2020

Вот мой код:

from bs4 import BeautifulSoup as bs
html = "<div><span>I am Spantacus</div></span>"
pretty = bs(html).prettify()
print("after:\n", pretty)

Что я хочу:

Красиво с отступом и представлением новой строки d html, без добавления чего-либо , т.е.

<div>
  <span>
    I am Spantacus
  </span>
</div>

Что я получу вместо этого:

<html>
 <body>
  <div>
   <span>
    I am Spantacus
   </span>
  </div>
 </body>
</html>

При входе в prettify() кажется, что теги html, body добавляются супом __init__, не путем претенциозности. Есть ли какое-либо ключевое слово или опция, чтобы отключить это дополнение?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2020

попробуйте

from bs4 import BeautifulSoup

html = "<div><span>I am Spantacus</div></span>"
soup1 = BeautifulSoup(html, "html.parser")
# you can also use lxml for parse

pretty = soup1.prettify()
print("after:\n", pretty)

для получения дополнительной информации здесь

1 голос
/ 21 февраля 2020

Используйте следующее, чтобы перейти к телу и распечатать:

for c in soup.html.body.contents: 
    print(c.prettify())

Изменить его на основе ваших потребностей

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