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

使用VBA从Yahoo Finance获取全球全量股票数据的方法

从Yahoo Finance批量获取全球股票数据并导入Excel的自动化方案

一、先解决「全球股票代码列表」的问题

Yahoo Finance没有直接提供全量股票代码的接口,你需要先获取覆盖全球主要交易所的股票代码集合:

  • 从公开数据集获取:下载包含全球股票代码的CSV文件(需选择带交易所后缀的版本,比如美股AAPL、港股00700.HK、A股600000.SS),这类合规的免费资源可在开源平台找到。
  • 批量整理交易所公开数据:针对纽交所、纳斯达克、港交所、上交所等全球主要交易所,从其官网公开的上市股票列表中提取代码,整理成统一格式的清单(需遵守各交易所的爬虫规则)。

二、用Python实现自动化数据抓取与Excel导出

Python的yfinance库是对接Yahoo Finance的高效工具,配合pandas可快速处理数据并导出到Excel。

步骤1:安装依赖库

打开命令提示符执行以下命令:

pip install yfinance pandas openpyxl

步骤2:编写自动化脚本

以下是核心代码示例,包含代码遍历、数据抓取、异常处理和Excel导出:

import yfinance as yf
import pandas as pd
import time

# 读取预先准备的全球股票代码列表(假设文件名为global_tickers.csv,列名'ticker')
tickers_df = pd.read_csv('global_tickers.csv')
ticker_list = tickers_df['ticker'].tolist()

stock_data = []

# 遍历代码抓取数据,添加延迟避免触发Yahoo限制
for ticker in ticker_list:
    try:
        stock = yf.Ticker(ticker)
        info = stock.info
        
        # 提取所需字段(可根据需求调整)
        row = {
            '股票代码(Ticker)': ticker,
            '公司名称': info.get('longName', '无数据'),
            '当前股价': info.get('currentPrice', '无数据'),
            '市值': info.get('marketCap', '无数据'),
            '行业': info.get('industry', '无数据'),
            '交易所': info.get('exchange', '无数据')
        }
        stock_data.append(row)
        print(f"已获取 {ticker} 的数据")
        time.sleep(1)  # 每秒请求一次,规避限流
    except Exception as e:
        print(f"获取 {ticker} 数据失败: {str(e)}")
        continue

# 转换为DataFrame并导出到Excel
result_df = pd.DataFrame(stock_data)
result_df.to_excel('全球股票数据.xlsx', index=False, engine='openpyxl')
print("数据已成功导出到Excel")

步骤3:运行脚本

  • 将准备好的股票代码列表保存为global_tickers.csv,和脚本放在同一目录。
  • 运行脚本,等待执行完成后,打开生成的全球股票数据.xlsx即可查看结果。

三、关键注意事项

  • 请求限流:Yahoo Finance对请求频率有严格限制,必须添加1秒以上的延迟,否则可能被临时封禁IP。
  • 无效代码处理:脚本中的异常处理会跳过退市、无效的代码,避免流程中断。
  • 字段自定义:可根据需求修改row字典中的字段,比如添加市盈率、成交量等,参考yfinance官方文档的info字段说明。
  • 合规性:爬取交易所数据时,需遵守各平台的robots协议和使用条款,避免违规操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:46:18