Как из тега выбрать часть текста по условию?
имеем 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)