这个仓库 yfinance 是一个用于从雅虎财经(Yahoo! Finance)的 API 下载金融和市场数据的 Python 库。以下是对该仓库的详细介绍:
主要特点
- Pythonic 接口:提供了简洁易用的 Python 接口,方便用户获取金融和市场数据。
- 多类型数据支持:可以获取单个股票(
Ticker)、多个股票(Tickers)的数据,还能下载多只股票的市场数据(download)。 - 丰富的功能模块:包括获取市场信息(
Market)、实时流式数据(WebSocket和AsyncWebSocket)、搜索报价和新闻(Search)、获取行业和板块信息(Sector和Industry)以及构建筛选查询(EquityQuery和Screener)等。
主要组件
- Ticker:用于获取单个股票的数据。
- Tickers:用于获取多个股票的数据。
- download:批量下载多只股票的市场数据。
- Market:获取特定市场的信息。
- WebSocket 和 AsyncWebSocket:提供实时流式数据。
- Search:搜索股票报价和新闻。
- Sector 和 Industry:获取行业和板块信息。
- EquityQuery 和 Screener:构建筛选查询来筛选市场。
安装方法
可以使用 pip 从 PyPI 安装 yfinance:
$ pip install yfinance
代码结构
仓库的主要代码位于 yfinance 文件夹下,包含以下重要文件和模块:
- cache.py:实现了数据缓存功能,包括时区缓存(_TzCache)和数据库管理(_TzDBManager)。
- scrapers/holders.py:用于抓取和解析股票持有者信息,包括主要持有者、机构持有者、共同基金持有者、内幕交易等信息。
- domain/market.py:定义了 Market 类,用于获取市场的状态和摘要信息。
缓存机制
yfinance 提供了缓存机制来提高数据获取的效率,特别是时区缓存。主要的缓存类和方法包括:
- _TzCacheManager:管理时区缓存的初始化和获取。
- _TzCache:实现了时区缓存的具体操作,如查找(lookup)和存储(store)。
- _TzDBManager:管理时区缓存数据库的初始化、关闭和位置设置。
数据抓取和解析
scrapers/holders.py 模块中的 Holders 类负责抓取和解析股票持有者信息。主要方法包括:
- _fetch:从雅虎财经 API 获取数据。
- _fetch_and_parse:调用 _fetch 方法获取数据,并解析不同类型的持有者信息。
- _parse_* 系列方法:分别解析不同类型的持有者信息,如机构持有者、共同基金持有者、内幕交易等。
法律声明
yfinance是一个开源工具,使用雅虎的公开 API,仅用于研究和教育目的。- 该工具与雅虎公司没有关联、认可或审查关系。
- 用户在使用下载的数据时,应参考雅虎的使用条款。
文档和贡献
- 新的文档网站已经上线,可访问 ranaroussi.github.io/yfinance 查看详细文档。
- 仓库包含了贡献指南(
CONTRIBUTING.md)和行为准则(CODE_OF_CONDUCT.md),欢迎开发者贡献代码和反馈问题。