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

求助:使用Python Selenium爬取TradingView的Ehlers MAMA值返回空数组

解决Selenium爬取TradingView Ehlers MAMA指标返回空数组的问题

嘿,我来帮你搞定这个问题!你现在用Selenium爬TradingView的MAMA指标时返回空数组,核心问题出在元素定位太脆弱,还有页面等待逻辑不够精准,咱们一步步来调整:

问题分析

你之前用的是绝对XPATH(/html/body/div[1]/.../span[3]/span),这种定位方式完全依赖页面的层级结构,TradingView的页面加载动态性很强,稍微一点结构变化就会找不到元素;另外你只等待页面最外层的div加载完成,这时候指标元素可能还没渲染出来。

优化后的代码

我给你调整了定位方式和等待逻辑,更稳定可靠:

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
from selenium.common.exceptions import TimeoutException

# 配置Chrome选项
option = webdriver.ChromeOptions()
option.add_argument("--incognito")

# 初始化浏览器(注意:chrome_options已废弃,改用options参数)
browser = webdriver.Chrome(options=option)
browser.get("https://www.tradingview.com/chart/vKzVQllW/#")

# 延长超时时间,TradingView加载K线和指标需要更多时间
timeout = 15
try:
    # 先等待所有指标图例项加载完成
    legend_items = WebDriverWait(browser, timeout).until(
        EC.visibility_of_all_elements_located((By.CLASS_NAME, "pane-legend-item"))
    )
    
    # 遍历图例项,找到包含"MAMA"的那一项
    for item in legend_items:
        # 获取指标名称标签
        label_element = item.find_element(By.CLASS_NAME, "pane-legend-item-title")
        if "MAMA" in label_element.text:
            # 获取对应的指标数值
            mama_value_element = item.find_element(By.CSS_SELECTOR, "span.pane-legend-item-value.pane-legend-line")
            print(f"成功获取MAMA指标数值: {mama_value_element.text}")
            break
    else:
        print("未找到MAMA指标的图例项")

except TimeoutException:
    print("页面加载超时,未能找到目标元素")
finally:
    # 确保浏览器最终关闭,避免资源占用
    browser.quit()

关键修改点

  • 替换废弃参数:把chrome_options改成options,避免版本兼容警告
  • 更精准的等待:等待指标图例项加载完成,而不是宽泛的页面元素
  • 鲁棒的定位逻辑:通过指标名称("MAMA")匹配对应的数值,即使指标在图例中的位置变化,也能准确找到
  • CSS选择器替代绝对XPATH:用类名组合定位元素,比层级XPATH稳定得多

额外注意事项

  • 如果还是找不到元素,可以检查页面是否有iframe,若有需要先通过browser.switch_to.frame()切换到对应iframe
  • TradingView有反爬机制,如果频繁请求被限制,可以添加随机等待时间、模拟滚动等人类操作行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:05:54