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

Uploaded Source

Built Distribution

yfs-0.2.2-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yfs-0.2.2.tar.gz
  • Upload date:
  • Size: 24.7 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.2.tar.gz
Algorithm Hash digest
SHA256 631c1ff44f00cff5accaa4e86b8695ccedbbb758631da5716b1735b102aa8079
MD5 9e49532777cbe216cd10f361b542e030
BLAKE2b-256 776d2d69e7bb17268239fddd1e936809043d1cb6de7e62ecfd004fe2f1c65f88

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yfs-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 27.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eba2fe17e35c8b3589aaa28d4876ef03b1ff4f2450a9636bb5e77315e408f9ca
MD5 48a3184e07a4ac5027cc6c77eed3fb40
BLAKE2b-256 941cf78f8d5e0d49471255cac69a38bcbd3bb0eced744382e9ca26ad068805f6

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