Python:yfinance获取股票信息
安装yfinance
pip3 install yfinance
stock.py
获取股票信息
#!/usr/local/bin/python3
# @Time : 2021/1/28 17:30
# @Author : Paul Ding
# @File : stock.py
# @Software: PyCharm
import pandas as pd
from database import *
import yfinance as yf
import time
def from_yahoo(ticker, start, end):
if (ticker or start or end) is None: return
start_time = time.time()
print("Downloading {} from {} to {} ...".format(ticker, start, end))
df = yf.download(ticker, start = start, end = end, progress = False)
print("{} from {} to {} downloaded".format(ticker, start, end))
csv = "./data/stock/{}.csv".format(ticker)
df.to_csv(csv, index = True)
print("{} written.".format(csv))
end_time = time.time()
print("{:.3f}s elapsed.\n".format(end_time - start_time))
def to_mysql(host, user, password, database, ticker):
if (database or ticker) is None: return
table_columns = {
'DateTime': 'datetime',
'Open': 'DECIMAL(32,16)',
'High': 'DECIMAL(32,16)',
'Low': 'DECIMAL(32,16)',
'Close': 'DECIMAL(32,16)',
'Adj_Close': 'DECIMAL(32,16)',
'Volume': 'BIGINT',
}
primary_key = 'DateTime'
db = mysql(host=host, user=user, password=password)
db.create_database(database)
print("Processing {} ...".format(ticker))
table = ticker
csv = "./data/stock/{}.csv".format(ticker)
df = pd.read_csv(csv, index_col = False)
print("database: {}".format(database))
print("table: {}".format(table))
db.create_table(database, table, table_columns, primary_key)
db.insert_items(database, table, [tuple(df.loc[idx].values) for idx in df.index])
print()
if __name__ == "__main__":
tickers = ['AAPL',