• Stars
    star
    173
  • Rank 218,876 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Scrapes Yahoo! Finance earnings calendar to get data for a specific date or a date range.

Yahoo! Earnings Calendar Scraper

codecov Build Status

Scrapes Yahoo! Finance earnings calendar to get data for a specific date or a date range.

Installation

Pip

pip install yahoo_earnings_calendar

Usage

Get earnings date information on a specific date or in a date range

import datetime
from yahoo_earnings_calendar import YahooEarningsCalendar

date_from = datetime.datetime.strptime(
    'May 5 2017  10:00AM', '%b %d %Y %I:%M%p')
date_to = datetime.datetime.strptime(
    'May 8 2017  1:00PM', '%b %d %Y %I:%M%p')
yec = YahooEarningsCalendar()
print(yec.earnings_on(date_from))
print(yec.earnings_between(date_from, date_to))

Data attributes

  • companyshortname: Company Name
    • e.g., 20160606
  • ticker: Ticker
    • e.g., AAPL
  • startdatetime: Event Start Time
    • e.g., 2017-04-23T21:00:00.000-04:00
  • startdatetimetype: Event Start Time Type
    • e.g., TAS (Time Not Supplied), AMC (After Market Close )
  • epsestimate: EPS Estimate
  • epsactual: Reported EPS
  • epssurprisepct: Surprise (%)
  • gmtOffsetMilliSeconds: GMT Offset in MS

Get the next earnings date of a specific symbol

import datetime
from yahoo_earnings_calendar import YahooEarningsCalendar

yec = YahooEarningsCalendar()
# Returns the next earnings date of BOX in Unix timestamp
print(yec.get_next_earnings_date('box'))
# 1508716800

Get all the available earnings data of a specific symbol

from yahoo_earnings_calendar import YahooEarningsCalendar

yec = YahooEarningsCalendar()
    # Returns a list of all available earnings of BOX
print(yec.get_earnings_of('box'))

Set delay between requests

By default, requests are delayed by 1.8 sec to avoid exceeding the 2000/hour rate limit. You can override the default delay by passing an argument to the YahooEarningsCalendar constructor.

import datetime
from yahoo_earnings_calendar import YahooEarningsCalendar

my_custom_delay_s = 0.5

yec = YahooEarningsCalendar(my_custom_delay_s)