这个仓库 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
),欢迎开发者贡献代码和反馈问题。