Как вытащить "Нужный текст"

<a class="filter__link">Нужный текст<span class="filter__count" >Ненужный текст</span></a>

Как вытащить "Нужный текст" из такой структуры html?


Ответы (1 шт):

Автор решения: Jack_oS

Как вариант, выделить весь текст и удалить из него ненужное:

from bs4 import BeautifulSoup


html = '<a class="filter__link">Нужный текст<span class="filter__count" >Ненужный текст</span></a>'

soup = BeautifulSoup(html, 'html.parser')
unnecessary = soup.find('span', class_='filter__count').text
full_text = soup.find('a', class_='filter__link').text

necessary = full_text.replace(unnecessary, '')

В necessary в итоге:

>>>necessary
'Нужный текст'
→ Ссылка