You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BeautifulSoup获取HTML表格中td元素的data-odd属性数值?

获取HTML元素中data-odd属性的数值

你用.text拿不到数值是因为这些值不在元素的文本内容里,而是存储在data-odd这个自定义HTML属性中,需要通过属性获取的方式提取。

针对你提供的两种HTML结构(td自身带data-odd、td内部span带data-odd),可以用以下代码处理:

from bs4 import BeautifulSoup

# 你的HTML内容
html_content = '''
<td class="table-main__odds colored" data-oid="5lmp0xv464x0xf55p3"><span><span><span data-odd="3.03"></span></span></span></td>
<td class="table-main__odds colored" data-oid="5lmp3xv464x0xf55p9"><span><span><span data-odd="1.21"></span></span></span></td>
<td class="table-main__odds" data-odd="3.23" data-oid="5lmovxv464x0xf55p1"></td>
'''

soup = BeautifulSoup(html_content, 'html.parser')
# 定位所有目标td元素
td_elements = soup.find_all('td', class_='table-main__odds')

for td in td_elements:
    # 优先获取td自身的data-odd属性
    odd_num = td.get('data-odd')
    # 如果td没有该属性,就查找内部带data-odd的span
    if not odd_num:
        target_span = td.find('span', attrs={'data-odd': True})
        if target_span:
            odd_num = target_span.get('data-odd')
    # 输出结果
    print(odd_num)

关键说明:

  • 使用.get('属性名')获取属性值,比直接用td['data-odd']更安全,属性不存在时不会报错,返回None
  • attrs={'data-odd': True}用于精准筛选带有data-odd属性的span元素
  • 先检查td自身属性再查找子元素,能覆盖你提供的两种结构场景

内容的提问来源于stack exchange,提问作者Dave85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:16:06