Как из тега выбрать часть текста по условию?

имеем html документ:

   ...
        html_doc = <td class="gScore">2 : 0<br /><span>(7-6<sup>6</sup>, 7-5)</span></td>
   ...

нужно получить текстовые данные из тега td, исключая текст в теге <sup>, т.е.: "2 : 0(7-6, 7-5)"

сейчас я обращаюсь непосредственно ко всему тегу и работаю с ним как со строкой:

td_info = BeautifulSoup(requests.get(html_doc.text, 'html5lib')    
score = str(td_info.find('td', class_='gScore'))

соответственно получаю:

       "<td class="gScore">2 : 0<br /><span>(7-6<sup>6</sup>, 7-5)</span></td>"

далее, используя текстовые операторы получаю нужный результат. :|

я уверен, это можно сделать как-то проще. :)


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

Автор решения: Сергей Ш
from bs4 import BeautifulSoup
html_doc = '<td class="gScore">2 : 0<br /><span>(7-6<sup>6</sup>, 7<sup>6</sup>-5, ' \
           '6-4, 13<sup>24</sup>-11<sup>20</sup>)</span></td>'
td_info = BeautifulSoup(html_doc, "xml")

# будут удалены все теги "sup" в td_info
[x.decompose() for x in td_info.select("sup")]
print(td_info.text)

вывод

2 : 0(7-6, 7-5, 6-4, 13-11)
→ Ссылка