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

如何用Python requests模块获取带特定data-symbol标签的目标数据

解决方法:定位指定属性的并提取目标数值

你的问题出在定位标签的方式上——find("tr", text="data-symbol=\"CL1:COM\"")是在找标签内的文本内容等于该字符串的,但实际上你要找的是带有data-symbol="CL1:COM"属性的标签,得用属性查找的方式。

修改后的代码如下:

URL = "https://tradingeconomics.com/commodity/crude-oil"
page = requests.get(URL, headers=headers)

soup = BeautifulSoup(page.content, "html.parser")
# 先定位目标表格
target_table = soup.find("table", class_="table table-hover sortable-theme-minimal table-heatmap")
# 直接通过data-symbol属性定位<tr>标签
target_tr = target_table.find("tr", {"data-symbol": "CL1:COM"})
# 提取该<tr>下id为"p"的<td>的文本,strip()去除多余空格
price_value = target_tr.find("td", id="p").get_text(strip=True)
print(price_value)  # 输出:82.86

关键说明:

  • 用{"data-symbol": "CL1:COM"}作为find的参数,直接匹配带有对应属性和值的标签,这是BeautifulSoup处理自定义属性的标准方式。
  • get_text(strip=True)可以自动去除文本前后的换行、空格等无用字符,直接得到干净的数值字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:43:31