yfinance快速上手指南:3行Python获取股价与财报数据
2026/9/5 19:27:21 网站建设 项目流程

yfinance快速上手指南:3行Python获取股价与财报数据

【免费下载链接】yfinanceDownload market data from Yahoo! Finance's API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

yfinance 是一个 Python 开源库,通过 Yahoo Finance 的公开接口获取市场行情与财务数据。一行Ticker("MSFT")就能拿到公司基本信息、股价历史、财报、期权链,还可以批量下载多只股票、按行业筛选股票。适合做量化回测、投资研究或数据分析的 Python 新手,也适合需要把行情数据接入自己脚本的开发者。

它解决什么问题

自己抓 Yahoo Finance 网页或接口,要处理反爬、字段解析、跨时区时间戳、复权价格这些琐事,而且不同市场的数据质量问题各不相同。yfinance 把这些封装成了 Python 对象:返回的是可以直接交给 pandas 处理的 DataFrame,历史价格自动做复权,还支持自动修复上游数据错误。

对新手来说,最直观的价值是:不写任何 HTTP 请求代码,几行脚本就能把数据落盘。

核心功能速览

入口用途典型场景
Ticker单只标的的全部数据看个股信息、财报、期权链
Tickers多只标的批量封装同时处理一篮子股票
download批量下载行情表回测前准备数据
Search搜索报价和新闻找代码、看资讯
Sector/Industry行业与板块信息按行业挑股票
Screener条件选股按市盈率等条件筛选
WebSocket实时行情流盯盘、监控告警

以上入口均在 yfinance/init.py 中导出,import yfinance as yf后直接可用。

三步跑通最小可用流程

📊 安装、创建对象、取数据,总共三步。建议先建一个虚拟环境,避免依赖冲突。

pip install yfinance

然后在 Python 里获取单只股票的数据:

import yfinance as yf t = yf.Ticker("MSFT") t.info # 公司基本信息 t.history(period="1mo") # 近一个月日线,返回 pandas DataFrame t.quarterly_income_stmt # 季度利润表

再批量下载多只股票:

data = yf.download(["MSFT", "AAPL", "GOOG"], period="1mo")

download支持空格分隔的字符串写法,如yf.download("SPY AAPL", period="1mo"),参考示例 reference/examples/download.py。返回的 DataFrame 可直接.to_csv()落盘,供后续分析使用。

进阶用法:搜索、行业与实时数据

关键词搜索比直接猜代码更稳。搜代码、看新闻各取一个属性即可:

quotes = yf.Search("AAPL", max_results=10).quotes news = yf.Search("Google", news_count=10).news

按行业筛选适合做横向比较:

tech = yf.Sector("technology") tech.top_companies # 该行业头部公司

实时数据WebSocketAsyncWebSocket(同步/异步两套),适合写监控脚本而不是循环拉取。

网络不稳或需要代理时,用全局配置控制重试和代理:

yf.config.network.retries = 2 # 指数退避重试:1s、2s、4s... yf.config.network.proxy = "PROXY"

完整配置项见 advanced/config.rst。

技术亮点:自动修复价格数据

Yahoo 返回的数据并不总是干净的。非美股尤其常见几类问题:分红后Adj Close没复权、拆股后价格没调整、缺失整行或成交量、个别市场价格被放大 100 倍。

yfinance 在history()download()中提供了repair=True参数,开启后会尝试自动修复这些问题,并在结果表里新增一列Repaired?标记哪些行被修过。修复范围包括:

  • 缺失分红复权:有分红记录但Adj Close等于Close时,手动补上分红调整
  • 缺失拆股复权:检测到拆股事件但前一日价格未调整时,应用拆股比例
  • 数据缺失:日线数据损坏时,用 1 小时等更细粒度的数据重建
  • 货币错乱:修复后以Ticker.history_metadata['currency']为准,而不是Ticker.info

yfinance价格修复:自动修正100倍放大错误

做跨市场、长周期回测时,这个功能能省掉大量人工核对价格的功夫。细节见 advanced/price_repair.rst。

使用边界:数据合规要注意

两点需要说在前面,README 里反复强调过:

  1. yfinance 与 Yahoo 公司无关,没有官方背书,只是使用其公开接口的开源工具,定位是研究与教育用途。
  2. 数据用途受 Yahoo 服务条款约束,接口声明仅供个人使用。商业分发数据前,建议自行确认权利边界。

隐私方面无需担心:库本身不采集本地任何信息,请求走的是公开行情接口;如果你用代理,数据流向由你配置的yf.config.network.proxy决定。

参与社区与后续学习

项目靠社区排查 bug 和贡献代码,流程写在 CONTRIBUTING.md。分支模型如下图,参与前可以先对照理解:

入门后建议按这个顺序深入:先看 reference 目录 的 API 文档和示例脚本(reference/examples/ 下按功能分文件),再按需阅读 advanced 章节 里的缓存、日志、多层级列等主题。遇到问题时,用enable_debug_mode()打开调试输出,配合yf.config.debug.hide_exceptions = False查看原始异常,定位效率会高很多。

👉 下一步:装好库,选一只你熟悉的股票,把history(period="1y")的结果存成 CSV,再从Ticker属性里挑一个你还没用过的字段读出来。数据到手后,yfinance 能做什么,就取决于你的问题了。

【免费下载链接】yfinanceDownload market data from Yahoo! Finance's API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询