Search code examples
pythonfinanceyahoo-finance

Scrape the financial reports in Yahoo finance


I tried to scrape the quarterly financial reports (income statement, balance sheet and cash flow statement) for >500 companies via Yahoo Finance. The problem I face is that the scrapers yahoofinancials or yahoo_fin retreive values which are incorrect.

E.g. for the ticker 'ABB', they retreive an EBIT of CHF 512'000'000 on the 31.12.2020. However, on the company's page, the respecitve EBIT is CHF 299,000 k.

Did anybody else experience the same issues and find a solution?


Solution

  • You can check out a package called yahooquery. Disclaimer: I am the author of the package.

    from yahooquery import Ticker
    
    t = Ticker('ABB')
    df = t.income_statement(frequency='q')
    df[['asOfDate','EBIT']]
    
             asOfDate            EBIT
    symbol                           
    ABB    2019-12-31   663,000,000.0
    ABB    2020-03-31   427,000,000.0
    ABB    2020-06-30   615,000,000.0
    ABB    2020-09-30  -260,000,000.0
    ABB    2020-12-31   299,000,000.0
    ABB    2020-12-31 1,081,000,000.0
    

    Also, to retrieve all of the financial reports for one symbol in one request, do the following:

    df = t.all_financial_data('q')