yfinance仅返回近4年季度财报等数据?如何获取全部可用数据
问题:如何通过yfinance获取股票全部年份的季度财务数据?
我尝试使用yfinance获取某只股票的全部可用数据,但发现yfinance仅返回近4年的季度财务报表(quarterly_financials)、资产负债表(quarterly_balance_sheet)、现金流量表(quarterly_cashflow)等数据。请问如何让它返回所有可用年份的数据?是否可行?
用户提供的代码
def get_info_on_stock(ticker): stock = yf.Ticker(ticker) hist = stock.history(period = 'max') action = stock.actions dividend = stock.dividends financial = stock.financials qtr_financials = stock.quarterly_financials balance_sheet = stock.balance_sheet qtr_balance_sheet = stock.quarterly_balance_sheet cashflow = stock.cashflow qtr_cashflow = stock.quarterly_cashflow earnings = stock.earnings upcoming_event = stock.calendar major_stake_holders = stock.major_holders institutional_holders = stock.institutional_holders hist.to_csv(f"{ticker}_hist.csv") action.to_csv(f"{ticker}_action.csv") dividend.to_csv(f"{ticker}_dividend.csv") financial.to_csv(f"{ticker}_financial.csv") qtr_financials.to_csv(f"{ticker}_qtr_financials.csv") balance_sheet.to_csv(f"{ticker}_balance_sheet.csv") qtr_balance_sheet.to_csv(f"{ticker}_qtr_balance_sheet.csv") cashflow.to_csv(f"{ticker}_cashflow.csv") qtr_cashflow.to_csv(f"{ticker}_qtr_cashflow.csv") earnings.to_csv(f"{ticker}_earnings.csv") upcoming_event.to_csv(f"{ticker}_upcoming_events.csv") major_stake_holders.to_csv(f"{ticker}_major_stake_holders.csv") institutional_holders.to_csv(f"{ticker}_institutional_holders.csv")
回答
- 核心结论:通过yfinance无法获取超过4年的季度财务数据,这是Yahoo Finance公开数据源的限制,而非yfinance库本身的问题。Yahoo Finance官网仅对外展示最近4年的季度财务报表,yfinance作为其数据封装工具,自然无法获取到不存在的公开数据。
- 验证方式:你可以直接访问Yahoo Finance对应股票的财务页面,查看季度报表板块,会发现官网也只提供最近4年的记录,这直接印证了数据源的限制。
- 替代方案:如果必须获取更早的季度财务数据,只能转向其他专业数据源,比如美国SEC的EDGAR数据库(针对美股上市公司)、彭博、路透等付费金融数据服务,但这些都需要单独开发接口或使用对应工具,yfinance无法支持这类需求。
- 补充说明:yfinance提供的年度财务数据(如
financials、balance_sheet)通常能返回10年以上的历史记录,不受4年限制,若你的需求可以接受年度数据,可以优先使用这些字段。
内容的提问来源于stack exchange,提问作者Mustafa Fakhar
相关产品推荐
相关产品推荐

