[英]Stock data download python no library
我正在為學校(A-Level)編寫一個項目,需要能夠下載股票數據並繪制圖表。 我能夠使用 matplotlib 繪制數據圖表。 但是我只被允許使用一定數量的庫。
我需要在不導入庫的情況下獲取數據,但無法做到。 我試過從https://query1.finance.yahoo.com/v7/finance/download/ticker下載,但 crumb 值不斷變化,所以我不斷從錯誤的 cookie 中獲取錯誤。
我怎樣才能解決這個問題? 或者有更簡單的數據站點嗎?
我的代碼:
import requests
r = requests.get("query1.finance.yahoo.com/v7/finance/download/…)
file = open(r"MSFT.csv", 'w')
file.write(r.text) file.close()
從https://datahub.io下載數據,或者您可以訂閱來自不同交易所的第三方供應商的實時數據饋送。
你說:“我只被允許使用一定數量的圖書館。” 這意味着什么? 您應該能夠使用您需要使用的任何庫,對吧。 運行下面的腳本。 它將從雅虎下載股票數據並繪制時間序列。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.optimize as sco
import datetime as dt
import math
from datetime import datetime, timedelta
from pandas_datareader import data as wb
from sklearn.cluster import KMeans
np.random.seed(777)
start = '2019-4-30'
end = '2019-10-31'
# N = 90
# start = datetime.now() - timedelta(days=N)
# end = dt.datetime.today()
tickers = ['MMM',
'ABT',
'ABBV',
'ABMD',
'AAPL',
'XEL',
'XRX',
'XLNX',
'XYL',
'YUM',
'ZBH',
'ZION',
'ZTS']
thelen = len(tickers)
price_data = []
for ticker in tickers:
prices = wb.DataReader(ticker, start = start, end = end, data_source='yahoo')[['Adj Close']]
price_data.append(prices.assign(ticker=ticker)[['ticker', 'Adj Close']])
df = pd.concat(price_data)
df.dtypes
df.head()
df.shape
pd.set_option('display.max_columns', 500)
df = df.reset_index()
df = df.set_index('Date')
table = df.pivot(columns='ticker')
# By specifying col[1] in below list comprehension
# You can select the stock names under multi-level column
table.columns = [col[1] for col in table.columns]
table.head()
plt.figure(figsize=(14, 7))
for c in table.columns.values:
plt.plot(table.index, table[c], lw=3, alpha=0.8,label=c)
plt.legend(loc='upper left', fontsize=12)
plt.ylabel('price in $')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.