Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # coding: utf-8
- # In[20]:
- import re
- import json
- import csv
- from io import StringIO
- from bs4 import BeautifulSoup
- import requests
- # In[21]:
- url_stats = 'https://finance.yahoo.com/quote/{}/key-statistics?p={}'
- url_profile = 'https://finance.yahoo.com/quote/{}/profile?p={}'
- url_financials = 'https://finance.yahoo.com/quote/{}/financials?p={}'
- # In[46]:
- stock = 'GME'
- print("###################################################################################")
- print("Collicting info for {}".format(stock))
- # In[23]:
- responce = requests.get(url_financials.format(stock, stock))
- # In[24]:
- soup = BeautifulSoup(responce.text, 'html.parser')
- # In[25]:
- pattern = re.compile(r'\s--\sData\s--\s')
- script_data = soup.find('script', text=pattern).contents[0]
- # In[26]:
- start = script_data.find("context")-2
- # In[27]:
- json_data = json.loads(script_data[start:-12])
- # # Financial data
- # In[28]:
- annual_is = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['incomeStatementHistory']['incomeStatementHistory']
- quarterly_is = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['incomeStatementHistoryQuarterly']['incomeStatementHistory']
- annual_cf = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['cashflowStatementHistoryQuarterly']['cashflowStatements']
- quarterly_cf = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['cashflowStatementHistory']['cashflowStatements']
- annual_bs = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['balanceSheetHistory']['balanceSheetStatements']
- quarterly_bs = json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['balanceSheetHistoryQuarterly']['balanceSheetStatements']
- # In[29]:
- annual_is_stats = []
- quarterly_is_stats = []
- annual_cf_stats = []
- quarterly_cf_stats = []
- annual_bs_stats =[]
- quarterly_bs_stats = []
- for s in annual_is:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- annual_is_stats.append(statement)
- for s in quarterly_is:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- quarterly_is_stats.append(statement)
- for s in annual_cf:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- annual_cf_stats.append(statement)
- for s in quarterly_cf:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- quarterly_cf_stats.append(statement)
- for s in annual_bs:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- annual_bs_stats.append(statement)
- for s in quarterly_bs:
- statement = {}
- for key, val in s.items():
- try:
- statement[key] = val['raw']
- except TypeError:
- continue
- except KeyError:
- continue
- quarterly_bs_stats.append(statement)
- # In[39]:
- print("###################################################################################")
- print("Showing annual income Statement History")
- print(annual_is_stats[0])
- # In[40]:
- print("###################################################################################")
- print("Showing quarterly income Statement History")
- print(quarterly_is_stats[0])
- # In[41]:
- print("###################################################################################")
- print("Showing annual cash flow Statements")
- print(annual_cf_stats[0])
- # In[42]:
- print("###################################################################################")
- print("Showing quarterly cash flow Statements")
- print(quarterly_cf_stats[0])
- # In[43]:
- print("###################################################################################")
- print("Showing annual balance Sheet Statements")
- print(annual_bs_stats[0])
- # In[44]:
- print("###################################################################################")
- print("Showing quarterly balance Sheet Statements")
- print(quarterly_bs_stats[0])
- # # Profile data
- # In[30]:
- responce = requests.get(url_profile.format(stock, stock))
- soup = BeautifulSoup(responce.text, 'html.parser')
- pattern = re.compile(r'\s--\sData\s--\s')
- script_data = soup.find('script', text=pattern).contents[0]
- start = script_data.find("context")-2
- json_data = json.loads(script_data[start:-12])
- # In[31]:
- print("###################################################################################")
- print("Showing company Officers")
- print(json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['assetProfile']['companyOfficers'])
- # In[32]:
- print("###################################################################################")
- print('Showing long Business Summary')
- print(json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['assetProfile']['longBusinessSummary'])
- # In[33]:
- # Filtes for K8 and K10 sec filings
- filings =[]
- for f in json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['secFilings']['filings']:
- if f['type'] == '8-K' or f['type'] == '10-K':
- filings.append(f)
- # In[34]:
- print("###################################################################################")
- print("Showing 8-K and 10-K SEC filings")
- print(filings)
- # # Statistics
- # In[35]:
- responce = requests.get(url_stats.format(stock, stock))
- soup = BeautifulSoup(responce.text, 'html.parser')
- pattern = re.compile(r'\s--\sData\s--\s')
- script_data = soup.find('script', text=pattern).contents[0]
- start = script_data.find("context")-2
- json_data = json.loads(script_data[start:-12])
- # In[36]:
- print("###################################################################################")
- print("Showing Key Statistics")
- print(json_data['context']['dispatcher']['stores']['QuoteSummaryStore']['defaultKeyStatistics'])
- # In[18]:
- stock_url = 'https://query1.finance.yahoo.com/v7/finance/download/{}?'
- params = {
- 'range': '5y',
- 'interval': '1d',
- 'events': 'history',
- 'includeAdjustedClose': 'true'
- }
- responce = requests.get(stock_url.format(stock), params=params)
- # In[19]:
- print("###################################################################################")
- print("Showing history 5y 1d interval")
- file = StringIO(responce.text)
- reader = csv.reader(file)
- data = list(reader)
- for row in data[:5]:
- print(row)
- # In[ ]:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement