<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>)
我正在寻找那些数字23 - 1 - 13.我如何提取它们?我在Python中使用BeautifulSoup。
答案 0 :(得分:0)
您需要在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]