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

如何使用BeautifulSoup提取指定data-automation-id的元素内容?

如何用BeautifulSoup提取带data-automation-id属性元素的值?

要提取data-automation-id="header-account-balance"元素里的$100.00,你可以用以下几种实用方法:

方法一:使用attrs字典匹配属性

这是适配所有特殊属性名的通用写法:

from bs4 import BeautifulSoup

# 假设你已抓取的HTML内容存储在html变量中
html = '''
<div class="contentContainer_ff3y6tu">
<div class="container_fikviug">
<div class="accountPillForPersonal_fituo0a">
<div class="balanceTextContainer_fu48fjw">
<div class="container_fdoc1b1">
<span class="size14_f7opyze" data-automation-id="header-account-balance">$100.00</span>
</div></div>
<div class="tokenCount_f19lbt28">
<span class="size12_fq5j3k2 CodGray_f1tc10rl bold_f1au7gae">7</span>
</div></div></div></div>
'''

soup = BeautifulSoup(html, 'html.parser')
# 定位目标元素
balance_elem = soup.find('span', attrs={'data-automation-id': 'header-account-balance'})
# 提取文本内容(strip=True去除多余空白)
if balance_elem:
    balance = balance_elem.get_text(strip=True)
    print(balance)  # 输出:$100.00

方法二:利用BeautifulSoup语法糖(属性名转下划线)

如果属性名包含连字符,BeautifulSoup允许将连字符替换为下划线,直接作为关键字参数使用:

balance_elem = soup.find('span', data_automation_id='header-account-balance')
# 后续提取文本的步骤和方法一完全一致

补充说明

  • 若需要匹配多个同属性的元素,把find()换成find_all()即可,返回结果是元素列表。
  • get_text(strip=True)能过滤掉网页文本中可能存在的换行、空格等冗余格式,让提取结果更干净。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:32:51