Как распарсить текст в div'е, игнорируя вложенные теги, BeautifulSoup?

Как спарсить часть div'a, типа такого:

<div class="example">
<p>bla-bla-bla</p>
<div>something not important</div>
<strong>SomeText</strong>
<br>
Нужный текст
<span style="color:red">Тоже нужный текст</span>
Нужный текст
</div>


Проблема в том, что текст, который нужно спарсить внутри самого div'a либо без тега, либо в теге , но кроме него в этом диве сначала идет вложенный div, который парсить не нужно. Как отсечь лишнее (лишний вложенный div)?
  • Вопрос задан
  • 12609 просмотров
Решения вопроса 2
@Mist8 Автор вопроса
Один из вариантов, как удалить лишнее:

from bs4 import BeautifulSoup
html_doc = """
<div class="example">
<p>bla-bla-bla</p>
<div>something not important</div>
<strong>SomeText</strong>
<br>
Нужный текст
<span style="color:red">Тоже нужный текст</span>
Нужный текст
</div>
"""
soup = BeautifulSoup(html_doc)
tag = soup.find("div", class_="example")

tag.div.decompose() # убираем вложенный div
tag.p.decompose()  # убираем текст в теге <p>
tag.br.decompose() # убираем перенос <br>
print(tag)
Ответ написан
Комментировать
@Werdes
Уничтожьте вложенные элементы перед чтением.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@IRIP
Как уничтожить вложенные элементы перед чтением?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы