Skip to main content

Scrape Yahoo Finance

Project description

YFS

Yahoo Finance Scraper with a WYSIWYG approach.

Want to scrape data from the summary page use the get_summary_page function. Want to scrape the summary pages of a list of symbols use the get_multiple_summary_pages function. The returned object can be serialized with .json, .dict, and depending on the object .dataframe methods. Each function can accept a proxy to help avoid rate limiting. In fact in the future you can install requests-whaor ANOTHER WORK IN PROGRESS which supplies a rotating proxy to bypass rate limits.

Before you start please note adding historical data to this API is not a priority. At some point I will get around to it. My main focus are options, quote information and symbol lookup. So please do not raise issues about historical data.

Features

  • Company and Symbol lookup
  • Summary Page
  • Option Chains
  • Statistics Page

Quick Start

Prereqs

  • Python ^3.8

Install with pip

pip install yfs

Install with poetry

poetry add yfs

How to scrape multiple summary pages from yahoo finance.

from yfs import get_multiple_summary_pages

search_items = ["Apple", "tsla", "Microsoft", "AMZN"]

summary_results = get_multiple_summary_pages(search_items)
for page in summary_results:
    print(page.json(indent=4))
    break  # To shorten up the quick-start output.

COLUMNS = [
    "close",
    "change",
    "percent_change",
    "average_volume",
    "market_cap",
    "earnings_date",
]
print(summary_results.dataframe[COLUMNS])

Output

 python3 quick_start_example.py
Downloading Summary Data... 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:03<00:00, 1.19 symbols/s]{
    "symbol": "AAPL",
    "name": "Apple Inc.",
    "quote": {
        "name": "Apple Inc.",
        "close": 113.02,
        "change": -3.77,
        "percent_change": -3.23
    },
    "open": 112.89,
    "high": 112.22,
    "low": 115.37,
    "close": 113.02,
    "change": -3.77,
    "percent_change": -3.23,
    "previous_close": 116.79,
    "bid_price": 112.58,
    "bid_size": 800,
    "ask_price": 112.77,
    "ask_size": 3000,
    "fifty_two_week_low": 137.98,
    "fifty_two_week_high": 53.15,
    "volume": 144711986,
    "average_volume": 172065562,
    "market_cap": 1933000000000,
    "beta_five_year_monthly": 1.28,
    "pe_ratio_ttm": 34.29,
    "eps_ttm": 3.3,
    "earnings_date": "2020-10-28",
    "forward_dividend_yield": 0.82,
    "forward_dividend_yield_percentage": 0.7,
    "exdividend_date": "2020-08-07",
    "one_year_target_est": 119.24
}
          close  change  percent_change  average_volume     market_cap earnings_date
symbol
AAPL     113.02   -3.77           -3.23       172065562  1933000000000    2020-10-28
AMZN    3125.00  -96.26           -2.99         5071692  1565000000000    2020-10-29
MSFT     206.19   -6.27           -2.95        34844893  1560000000000    2020-10-21
TSLA     415.09  -33.07           -7.38        80574089   386785000000    2020-10-21

TODO

  • More testing
  • More Docs
  • More examples
  • WHAOR Example
  • Profile Page
  • Financials Page
  • Analysis Page
  • Holders page
  • Sustainability Page
  • Historical Page
  • Chart Page
  • Conversations Page maybe ¯_(ツ)_/¯

Contact Information

Telegram = Twitter = Tradingview = Discord = @dgnsrekt

Email = dgnsrekt@pm.me

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yfs-0.2.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

yfs-0.2.0-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file yfs-0.2.0.tar.gz.

File metadata

  • Download URL: yfs-0.2.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.2 Linux/5.4.0-7634-generic

File hashes

Hashes for yfs-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e880f782d30545bed8668e7135be18a902edf8f9763599ef48531bfd62b8cd7b
MD5 5da6f2b284ba58ec62da54daa58e9f88
BLAKE2b-256 147bc2c9b79e0d088445aa988f5ec92fe1af44ac942ed29270eacea249efbd2e

See more details on using hashes here.

File details

Details for the file yfs-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: yfs-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.2 Linux/5.4.0-7634-generic

File hashes

Hashes for yfs-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0536e9ab726cc564921831b5485c7c13259f55ea2494d5a6a4ec0c246433425c
MD5 460593d673212bbe3f675a9b3ac65710
BLAKE2b-256 25f76afcc31fb8f5666e02a503fbd33f5ba054bbb0771056e3e6389c413cab65

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page