Вам нужно будет выполнить поиск по span
, а не по td
, поскольку это тот элемент, который содержит искомый класс:
soup.find_all('span', class_="tooltip button is-success is-small")
Также вы можете использовать soup.span.text
чтобы найти текст в теге span
.Затем какой-то стандартный Python, чтобы разделить его и преобразовать в числа.Если имеется несколько элементов, это можно сделать следующим образом:
from bs4 import BeautifulSoup
html = """
<td><span data-tooltip="some text" class="tooltip button is-success is-small" style="cursor: default;">23 - 1 - 13 (<span class="is-danger"style="font-weight: 700;">1.77</span>)</td>
<td><span data-tooltip="some text" class="tooltip button is-success is-small" style="cursor: default;">23 - 1 - 13 (<span class="is-danger"style="font-weight: 700;">1.77</span>)</td>
<td><span data-tooltip="some text" class="tooltip button is-success is-small" style="cursor: default;">23 - 1 - 13 (<span class="is-danger"style="font-weight: 700;">1.77</span>)</td>
"""
soup = BeautifulSoup(html, "html.parser")
for span in soup.find_all('span', class_='tooltip button is-success is-small'):
numbers = [int(v) for v in span.text.strip().split(' ')[:-1] if v != '-']
print(numbers)
Это даст вам три числа в списке следующим образом:
[23, 1, 13]
[23, 1, 13]
[23, 1, 13]