-
Notifications
You must be signed in to change notification settings - Fork 2
/
collectData.py
56 lines (41 loc) · 1.94 KB
/
collectData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Import all the libraries needed
import yfinance as yf
import sys
import os
import pandas as pd
class dataScraper:
def __init__(self):
return
def download_data(self,companyName:str, countryName:str,startDate:str = "2000-01-01",endDate:str = "2024-12-31") -> str:
stock = yf.Ticker(companyName)
data = stock.history(start = startDate, end = endDate)
if(data.empty):
return f"No data found for {companyName}"
data.to_csv(f"data/scrapedData/{countryName}/{companyName}.csv")
del data,stock
return f"Downloaded data for {companyName}"
def bulk_download_data(self,countryName:str = None,tickerListPath:str = None,requiredNumber:int = None,startDate:str = "2000-01-01",endDate:str = "2024-12-31") -> str:
if(countryName == None):
return f"Please give country code\n"
elif(tickerListPath == None):
return f"Please give a path to ticker list\n"
elif not os.path.exists(tickerListPath):
return f"File does not exist at {tickerListPath}\n"
ticker_symbols = pd.read_csv(tickerListPath)
if(requiredNumber == None):
ticker_symbols = ticker_symbols.head(5)
else:
ticker_symbols = ticker_symbols.head(requiredNumber)
for ticker in ticker_symbols['Ticker']:
stock = yf.Ticker(ticker)
data = stock.history(start = startDate, end = endDate)
if(data.empty):
return f"No data found for {ticker}"
data.to_csv(f"data/scrapedData/{countryName}/{ticker}.csv")
del data,stock
return f"Downloaded data for {ticker}"
def main():
downloader = dataScraper
downloader.download_data("NVDA","US")
#downloader.bulk_download_data(countryName = "IND",tickerListPath = "data/tickerList/indian_companies.csv")
main()