Skip to main content

Scrape Yahoo Finance

Project description

YFS

Yahoo Finance Scraper with a WYSIWYG approach.

Travis (.org) Black GitHub

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

>> To the documentation.

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

Next step fuzzy search examples

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.3.0.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

yfs-0.3.0-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yfs-0.3.0.tar.gz
  • Upload date:
  • Size: 25.1 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.3.0.tar.gz
Algorithm Hash digest
SHA256 22037456b9d64133b51e7125c21f8a68abb68b3639009ddee645c97662087b92
MD5 b4e712a6d3da53c51970944e786f307a
BLAKE2b-256 e62aabfcf79a1ea794f416b8a83ff3ad6e5890e544cd860e95cdbf8a69cab4b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yfs-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.5 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83a838d7a0f4c00d6d5e3d527f03e4bb0604ff00988e3b7b40712b530d97236d
MD5 05162d6ef87595f8cfb19fb8f0799bf7
BLAKE2b-256 4d007f867e7570dcdbec8fdad2292a55d09255d6384dbab37e6361e6c846d3a4

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