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

如何使用Python自动从Morningstar获取股票数据并导出Excel

自动导出Morningstar Excel数据的实现方案

下面给出两种可落地的实现思路,你可以根据自己的技术基础选择:


方案1:Selenium浏览器自动化(最适合新手,逻辑和手动操作完全一致)

不需要分析网站后台接口,完全模拟你手动点击下载的流程,调试成本低:

  • 先安装依赖库:执行命令 pip install selenium pandas,同时安装和你Chrome/Edge浏览器版本匹配的对应WebDriver
  • 操作逻辑和你手动操作完全对齐,参考代码片段如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import os
import pandas as pd

# 配置文件下载路径,替换为你自己的本地存储目录
download_path = "你本地的文件存储路径"
chrome_options = webdriver.ChromeOptions()
prefs = {"download.default_directory" : download_path}
chrome_options.add_experimental_option("prefs", prefs)
# 遇到反爬拦截时可加下方参数隐藏自动化标识
# chrome_options.add_argument("--disable-blink-features=AutomationControlled")

driver = webdriver.Chrome(options=chrome_options)
# 打开目标页面
driver.get("https://lt.morningstar.com/gco59km9k1/snapshot/default.aspx?tab=7&Id=F00000NMH9&ClientFund=0&CurrencyId=CAD")
time.sleep(3) # 等待页面加载完成,也可替换为显式等待提升稳定性

# 点击Chart Settings按钮,元素属性可以用浏览器F12开发者工具抓取
driver.find_element(By.ID, "替换为你抓取到的Chart Settings按钮ID").click()
time.sleep(1)
# 点击导出Excel按钮
driver.find_element(By.LINK_TEXT, "Export to Excel").click()
time.sleep(5) # 等待文件下载完成

# 读取最新下载的Excel文件
file_list = os.listdir(download_path)
latest_excel = max([f for f in file_list if f.endswith(".xlsx")], key=lambda x: os.path.getctime(os.path.join(download_path, x)))
Stock = pd.read_excel(os.path.join(download_path, latest_excel))

# 关闭浏览器
driver.quit()

调试时如果出现元素找不到的报错,优先检查元素定位属性是否正确、页面是否加载完成,可以适当延长等待时间


方案2:抓包直接请求下载地址(无浏览器,运行效率更高)

适合需要高频运行的场景,不需要启动浏览器,资源占用低:

  • 操作步骤:
    1. 打开浏览器F12开发者工具,切换到「网络」标签,手动点击一次「Export to Excel」
    2. 在请求列表中筛选找到返回类型为xlsx的请求,复制该请求的URL、请求头、请求参数
    3. 用requests库发送相同的请求,将返回的二进制内容存储为本地Excel文件后用pandas读取即可
  • 依赖安装命令:pip install requests pandas
    如果请求需要身份校验,记得把浏览器中对应的Cookie也复制到请求头中,Cookie过期后重新更新即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:06:03