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

使用Python爬取TradingView股票价格时无法获取元素内容求助

问题分析与解决方案

你的代码本身没有语法错误,问题出在TradingView的股票价格是通过JavaScript动态渲染的:

  • 用requests.get()获取的是页面初始的静态HTML,此时目标<span>标签只是一个空占位符,内部的价格内容还未加载;
  • 页面加载完成后,浏览器会执行JavaScript,从TradingView后端接口拉取实时价格数据,再填充到对应标签中。

解决办法

方法1:使用支持JavaScript渲染的工具(模拟浏览器)

用Selenium或Playwright这类工具模拟真实浏览器加载页面,等待JavaScript执行完毕后再提取内容。示例代码(Selenium):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器(需提前安装对应浏览器的驱动)
driver = webdriver.Chrome()
driver.get('https://fr.tradingview.com/symbols/NASDAQ-AAPL/')

# 等待价格元素加载完成
price_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, 'last-JWoJqCpY'))
)
print(price_element.text)

driver.quit()

方法2:直接调用TradingView的API接口(更高效)

打开浏览器开发者工具(F12),切换到「网络」标签筛选XHR请求,找到获取股票报价的接口(通常含quote或price关键词),直接用requests请求该接口拿数据,无需解析HTML。示例代码(接口需自行抓包确认):

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
# 示例接口(需替换为实际抓包得到的接口地址)
response = requests.get('https://api.tradingview.com/v1/symbols/NASDAQ-AAPL/quote', headers=headers)
data = response.json()
print(data['last_price'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:53:13