導航:首頁 > 數據行情 > yahoo股票歷史數據python

yahoo股票歷史數據python

發布時間:2024-04-10 07:24:49

① 為什麼python不能從yahoo finance中採集數據了

代碼如下:

from pylab import figure, show
from matplotlib.finance import quotes_historical_yahoo
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
import datetime
date1 = datetime.date( 2012, 1, 1 )
date2 = datetime.date( 2015, 3, 23 )

② 如何使用 Yahoo,Finance stock API 獲取股票數據

有三種方法獲得數據,具體如下:

1、通過API獲取實時數據

請求地址:http://finance.yahoo.com/d/quotes.csv?s=<股票名稱>&f=<數據列選項>

具體參數:

s – 表示股票名稱,多個股票之間使用英文「+」分隔如:」XOM+BBDb.TO+MSFT」,表示三個公司的股票:XOM,BBDb.TO,MSFT。

f – 表示返回數據列,如」snd1l1yr」。更詳細的參見雅虎股票 API f 參數對照表。

2、通過API獲取歷史數據

請求地址如下:http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

具體參數:

s – 股票名稱

a – 起始時間,月

b – 起始時間,日

c – 起始時間,年

d – 結束時間,月

e – 結束時間,日

f – 結束時間,年

g – 時間周期。

例如: g=w, 表示周期是「周"。d表示「日」(day),w表示「周」(week),m表示「月」(mouth),一定注意月份參數,其值比真實數據少1。如需要9月數據,則寫為08。

3、通過API獲取深滬股票數據

雅虎的API是國際性的,支持查詢國內滬深股市的數據,但代碼稍微變動一下,如浦發銀行的代號是:600000.SS。規則是:上海市場末尾加.SS,深圳市場末尾加.SZ。

③ python讀取財經數據

提取日期數據基本語法
from WindPy import w
w.start()
當出現.ErrorCode==-103說明沒連接上,要start一下

w.wsd(security, fields, startDate = None, endDate= None , options = None)
opion 可選(period, 日期類型, 貨幣類型,前後復權)

提取財務數據基本語法
w.wss(security, fields, options = None)

提取板塊日序列基本語法
w.wses(sectorCode, fields, startDate = None, endDate = None, options = None)

提取板塊日截面數據基本語法
w.wsee(sectorCode, fields, options=None)

提取宏觀數據基本語法
w.edb(codes, startDate =None, endDate =None, options=None)

1.日期序列基本語法
ts.get_hist_data(stock,start,end)
注意:1.stock不能是集合,只能單個股票 2.需要帶上.sz或.sh 3.沒有field,只能取出數據後再切除.

2.pro用法
pro.daily(code, start, end, fields)

tushare引用語句

弊端也很明顯,一方面不能stock集合輸入,一次只能調取一個股票對應數據,另一方面tushare雖是免費試用,但有許可權限制。

基本語法
wb.get_data_yahoo(code, start, end)
wb.DataReader(code, 'yahoo', start, end)

沒法添加fields, 雖能集合適用,但出來的索引挺奇怪的

推薦使用定義函數或用for循環批量獲取數據

總體感覺wind api最舒服,但需要賬號,mac也不能直接調用wind api。還是推薦tushare的pro用法。

小白學習中,請指教=v=

④ 如何利用一些 finance 資料庫 api 批量獲取股票信息

使用Yahoo API獲取股票信息。

⑤ 如何使用python 抓取雪球網頁

現在關注一個組合,就會有持倉變動的提示了。不過我覺得這事情挺有意思的。比如可以把很多持倉的數據都抓下來,做一些綜合的分析,看看現在網站上被持有最多的股票是哪一支,某一天被調入最多的又是哪一支之類。
於是我決定來抓抓看,順便藉此說說我通常用程序做自動抓取的過程。
Step.1 分析頁面
要抓一個網頁,首先自然是要「研究」這個網頁。通常我會用兩種方式:
一個是 Chrome 的 Developer Tools。通過它裡面的 Network 功能可以看到頁面發出的所有網路請求,而大多數數據請求都會在 XHR 標簽下。點擊某一個請求,可以看到其具體信息,以及伺服器的返回結果。很多網站在對於某些數據會有專門的請求介面,返回一組 json 或者 XML 格式的數據,供前台處理後顯示。

另一個就是直接查看網頁源代碼。通常瀏覽器的右鍵菜單里都有這個功能。從頁面的 HTML 源碼里直接尋找你要的數據,分析它格式,為抓取做准備。
對於雪球上的一個組合頁面 粗略地看了一下它發出的請求,並沒有如預想那樣直接找到某個數據介面。看源代碼,發現有這樣一段:
SNB.cubeInfo = {"id":10289,"name":"誓把老刀挑下位","symbol":"ZH010389" ...此處略過三千字... "created_date":"2014.11.25"}
SNB.cubePieData = [{"name":"汽車","weight":100,"color":"#537299"}];

cubeInfo 是一個 json 格式的數據,看上去就是我們需要的內容。一般我會找個格式化 json 的網站把數據復制進去方便查看。

這應該就是組合的持倉數據。那麼接下來,一切似乎都簡單了。只要直接發送網頁請求,然後把其中 cubeInfo 這段文字取出,按 json 讀出數據,就完成了抓取。甚至不用動用什麼 BeautifulSoup、正則表達式。
Step.2 獲取頁面
分析完畢,開抓。
直接 urllib.urlopen 向目標網頁發送請求,讀出網頁。結果,失敗了……
看了下返回結果:
403 Forbidden
You don't have permission to access the URL on this server. Sorry for the inconvenience.

被拒了,所以這種赤裸裸地請求是不行的。沒關系,那就稍微包裝一下:
send_headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Connection':'keep-alive',
'Host':'xueqiu.com',
'Cookie':r'xxxxxx',
}
req = urllib2.Request(url, headers=send_headers)
resp = urllib2.urlopen(req)
html = resp.read()

header 數據都可以從 Developer Tools 里拿到。這次順利抓到頁面內容。
一般網站或多或少都會對請求來源做一些阻攔,通過加 header 可以搞定大部分情況。
Step.3 提取數據
因為這個數據比較明顯,直接用通過一些字元串查找和截取操作就可以取出來。
pos_start = html.find('SNB.cubeInfo = ') + len('SNB.cubeInfo = ')
pos_end = html.find('SNB.cubePieData')
data = html[pos_start:pos_end]
dic = json.loads(data)

dic 就是一個包含數據的字典對象。之後想干什麼就隨便你了。
對於復雜一點的情況,可以通過 BeautifulSoup 來定位 html 標簽。再不好辦的,就用正則表達式,基本都可以解決掉。
Step.4 處理數據
因為我想對數據進行持久化存儲,並且做展示和分析,所以我用了 django 里的 ORM 來處理抓下來的數據。
# add Portfolio
portfolio, c = models.Portfolio.objects.get_or_create(code=dic['symbol'])
portfolio.name = dic['name']
portfolio.earnings = dic['total_gain']
portfolio.save()
# add Stock
stocks = dic['view_rebalancing']['holdings']
for s in stocks:
stock, c = models.Stock.objects.get_or_create(code=s['stock_symbol'])
stock.name = s['stock_name']
stock.count += 1
stock.weight += s['weight']
stock.save()

Portfolio 記錄下組合及其收益,Stock則記錄每支股票的被收錄數和總收錄份額。
對於抓取到的,一般也可以存在文件中,或者直接通過 SQL 存入資料庫,視不同情況和個人喜好而定。
Step.5 批量抓取
前面的一套做下來,就完整地抓取了一組數據。要達到目的,還要設計一下批量抓取的程序。
一個要解決的問題就是如何獲得組合列表。這個可以再通過另一個抓取程序來實現。然後根據這些列表來循環抓取就可以了。
若要細究,還要考慮列表如何保存和使用,如何處理抓取失敗和重復抓取,如何控制抓取頻率防止被封,可否並行抓取等等。
Step.6 數據分析
數據有了,你要怎麼用它,這是個很大的問題。可以簡單的統計現象,也可以想辦法深入分析背後隱藏的邏輯。不多說,我也還只是在摸索之中。

⑥ python如何獲得股票實時交易數據

使用easyquotation這個庫。(不用重復造輪子了)
github地址是:
https://github.com/shidenggui/easyquotation

⑦ 怎樣遍歷任意股票歷史數據要求使用循環。

下載個大智慧就可以了啊

⑧ 解決 pandas_datareader 無法獲取雅虎財經數據的問題

pandas_datareader 是重要的 pandas 相關包,原來是 pandas.io.data 方法,用於獲取介面數據,比如雅虎財經上的數據或者美聯儲路易斯安娜分行的數據,但是在最近版本(比如 pandas 0.20)中 pandas.io.data 的方法獨立出來稱為一個新的包 pandas_datareader 。

雅虎財經和谷歌財經的介面變換頻繁。如果用 pip install pandas_datareader ,已經無法得到雅虎財經。

pandas_datareader github Issuse #315 針對的就是雅虎財經介面無法訪問的問題, gusutabopb 在 5月21日進行了成功修正,並提供了他修正後的 pandas_datareader 新版本。

該修正版本的安裝方法是

安裝以後測試獲取 google 的股票數據成功。

參考:
Issues with the data reader fetching yahoo finance #315

Error with pulling data from Yahoo Finance

⑨ 如何使用 Yahoo,Finance stock API 獲取股票數據

如何使用 Yahoo,Finance stock API 獲取股票數據使用 Yahoo,Finance stock API 獲取股票數據:打開Yahoo Finance主頁(這里不讓貼url), 最左邊有個小框框(quote lookup),裡面輸入股票代碼點擊go就能查到即時股價

閱讀全文

與yahoo股票歷史數據python相關的資料

熱點內容
買拼多多股票為什麼要美國賬戶 瀏覽:3
財大證券如何簽協議買st股票 瀏覽:501
中國的股票和債券 瀏覽:873
st股票哪個月漲得多 瀏覽:699
晶方科技股票行情同花順 瀏覽:761
股票賬戶變更三方託管 瀏覽:366
長期投資只能股票這種途徑嗎 瀏覽:330
泰豪科技股票股吧同花順 瀏覽:748
分給員工的股票由別人代持 瀏覽:576
債券基金股票證券 瀏覽:13
股票一般都投資多少錢啊 瀏覽:839
投資平安銀行股票 瀏覽:762
現金支付和股票支付的比較 瀏覽:779
股票不分紅有投資 瀏覽:218
大數據是否是精確預測股票價格 瀏覽:949
st股票最新新聞 瀏覽:608
2019年行業龍股票 瀏覽:928
如何導入某個網站的股票數據 瀏覽:221
股市股票每筆交易記錄軟體 瀏覽:770
股票走勢圖趨勢線 瀏覽:68