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

Python中使用Beautiful Soup获取HTML span标签的data-hk属性

用Beautiful Soup获取span标签的data-hk属性

核心解决步骤

  1. 精准定位目标span标签
    根据你的HTML结构,用唯一标识筛选目标span——比如通过class、其他属性或者父元素层级定位:

    • 若span有专属class:soup.find('span', class_='目标class名')
    • 若需要多条件筛选(比如结合返回km/L的data-unit属性):soup.find('span', {'data-unit': 'km/L'})
    • 若依赖父元素:先定位父容器,再找内部的span,比如soup.find('div', class_='父容器class').find('span')
  2. 提取data-hk属性
    找到目标span后,用get()方法安全获取属性(属性不存在时返回None,避免报错),或者直接用下标访问:

    • 安全写法:target_span.get('data-hk')
    • 直接访问:target_span['data-hk'](属性不存在会抛出KeyError)

示例代码

假设你的HTML结构类似:

<div class="fuel-info">
  <span class="fuel-item" data-hk="8.5" data-unit="km/L">油耗数据</span>
</div>

对应的Python代码:

from bs4 import BeautifulSoup

# 替换为你的网页HTML内容
html = '''
<div class="fuel-info">
  <span class="fuel-item" data-hk="8.5" data-unit="km/L">油耗数据</span>
</div>
'''

soup = BeautifulSoup(html, 'html.parser')
# 定位目标span
target_span = soup.find('span', class_='fuel-item')
# 获取data-hk属性值
hk_data = target_span.get('data-hk')
print(hk_data)  # 输出:8.5

额外提示

  • 如果页面中有多个符合条件的span,用find_all()遍历处理:
    spans = soup.find_all('span', class_='fuel-item')
    for span in spans:
        print(span.get('data-hk'))
    
  • 检查你的当前代码:如果之前输出的是km/L,大概率是你获取了data-unit属性或者span的文本内容,把这部分替换成获取data-hk即可。

内容的提问来源于stack exchange,提问作者cbs-student

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:45:38