原文中具體闡述了Python怎樣獲得實(shí)時(shí)股票數(shù)據(jù)的方式實(shí)例,原文中根據(jù)實(shí)例編碼推薦的十分具體,對(duì)大家學(xué)習(xí)培訓(xùn)或工作具有很強(qiáng)的參照學(xué)習(xí)培訓(xùn)使用價(jià)值,必須的小伙伴們下邊伴隨著小編就來(lái)互相學(xué)習(xí)了解一下吧
怎樣獲得實(shí)時(shí)股票信息內(nèi)容
股票消息的插口有許多,以前大伙兒常見(jiàn)的是新浪網(wǎng)的,但年初情況下,新浪網(wǎng)的插口忽然無(wú)法使用,來(lái)給大家導(dǎo)致了非常大的煩惱,因此在網(wǎng)上也有許多實(shí)例教程教你如何從新浪網(wǎng)讀取數(shù)據(jù),跟隨實(shí)例教程整了大半天也沒(méi)用,干脆轉(zhuǎn)到126(其實(shí)就是網(wǎng)易游戲了),覺(jué)得速率都很不錯(cuò)。
最先大家看看接口地址:http://api.money.126.net/data/feed/1000001,money.api
這其中的1000001便是股票號(hào)了,跟新浪網(wǎng)的差異,它的首位意味著交易中心,后邊6位是股票號(hào)
0:上海交易所
1:深圳交易所
2:重慶聯(lián)交所
先進(jìn)行電腦瀏覽器看看算法設(shè)計(jì):
_ntes_quote_callback({ "1000001":{ "code":"1000001", "percent":0.002113, "high":14.25, "askvol3":1026758, "askvol2":810700, "askvol5":290493, "askvol4":461100, "price":14.23, "open":14.2, "bid5":14.18, "bid4":14.19, "bid3":14.2, "bid2":14.21, "bid1":14.22, "low":14.11, "updown":0.03, "type":"SZ", "bidvol1":323600, "status":0, "bidvol3":244200, "bidvol2":673474, "symbol":"000001", "update":"2022/06/25 17:59:57", "bidvol5":343500, "bidvol4":145200, "volume":86604061, "askvol1":817268, "ask5":14.27, "ask4":14.26, "ask1":14.23, "name":"平安銀行", "ask3":14.25, "ask2":14.24, "arrow":"↑", "time":"2022/06/24 16:00:58", "yestclose":14.2, "turnover":1227798687.09 } });
可以看出_ntes_quote_callback()中的就是標(biāo)準(zhǔn)的json數(shù)據(jù),我們只要通過(guò)正則表達(dá)式就可以取出。
我們先定義一個(gè)數(shù)據(jù)結(jié)構(gòu):
class NetTick: def __init__(self,dict={}): self.name=dict.get('name')#股票名稱 self.yestclose=dict.get('yestclose')#昨日收盤價(jià) self.bidvol5=dict.get('bidvol5')#買5數(shù)量 self.bidvol4=dict.get('bidvol4')#買4數(shù)量 self.bidvol3=dict.get('bidvol3')#買3數(shù)量 self.bidvol2=dict.get('bidvol2')#買2數(shù)量 self.bidvol1=dict.get('bidvol1')#買1數(shù)量 self.bid5=dict.get('bid5')#買5價(jià)格 self.bid4=dict.get('bid4')#買4價(jià)格 self.bid3=dict.get('bid3')#買3價(jià)格 self.bid2=dict.get('bid2')#買2價(jià)格 self.bid1=dict.get('bid1')#買1價(jià)格 self.askvol5=dict.get('askvol5')#賣5數(shù)量 self.askvol4=dict.get('askvol4')#賣4數(shù)量 self.askvol3=dict.get('askvol3')#賣3數(shù)量 self.askvol2=dict.get('askvol2')#賣2數(shù)量 self.askvol1=dict.get('askvol1')#賣1數(shù)量 self.ask5=dict.get('ask5')#賣5價(jià)格 self.ask4=dict.get('ask4')#賣4價(jià)格 self.ask3=dict.get('ask3')#賣3價(jià)格 self.ask2=dict.get('ask2')#賣2價(jià)格 self.ask1=dict.get('ask1')#賣1價(jià)格 self.symbol=dict.get('symbol')#股票代碼第一位1:深交所0:上交所2北交所 self.volume=dict.get('volume')#成交量 self.price=dict.get('price')#當(dāng)前價(jià)格 self.open=dict.get('open')#開(kāi)盤價(jià) self.low=dict.get('low')#最低價(jià) self.high=dict.get('high')#最高價(jià) self.code=dict.get('code')#去除標(biāo)記為的股票代碼 self.turnover=dict.get('turnover')#成交額 self.percent=dict.get('percent')#漲跌幅 self.updown=dict.get('updown')#漲跌金額
通過(guò)研究,我們發(fā)現(xiàn)126的接口支持多個(gè)股票查詢,那我們可以定義兩個(gè)方法,一個(gè)查單個(gè),一個(gè)查多個(gè),具體實(shí)現(xiàn)如下:
import requests import re from models.nettick import NetTick from utils.packages import* class NetEaseData: staticmethod def get_realtime_data(symbol): """ 網(wǎng)易的實(shí)時(shí)數(shù)據(jù)接口 :param symbol:股票代碼 :return:Tick """ code=NetEaseData.convert_market(symbol) try: response=requests.get("http://api.money.126.net/data/feed/{},money.api".format(code)).text re_find=NetEaseData.__re_find(response) if re_find is not None: find_stock=re_find.get(code) if find_stock is not None: return NetTick(find_stock) except Exception as e: logger.error('請(qǐng)求網(wǎng)易接口出錯(cuò),錯(cuò)誤信息:{}'.format(e)) return None staticmethod def convert_market(other_market_code=str): """ 轉(zhuǎn)換通用股票代碼sz sh bj開(kāi)頭+股票代碼 """ if other_market_code[0:2].lower()=='sh': return'0'+other_market_code[2:] elif other_market_code[0:2].lower()=='sz': return'1'+other_market_code[2:] else: return'2'+other_market_code[2:] staticmethod def get_realtime_datas(symbols=[]): """ 網(wǎng)易的實(shí)時(shí)數(shù)據(jù)接口 :param symbols:股票代碼列表 :return:Ticks列表 """ codes=[NetEaseData.convert_market(code)for code in symbols] result=[] try: response=requests.get("http://api.money.126.net/data/feed/{},money.api".format(','.join(codes))).text re_find=NetEaseData.__re_find(response) if re_find is not None: for code in re_find: item=re_find[code] result.append(NetTick(item)) except Exception as e: logger.error('請(qǐng)求網(wǎng)易接口出錯(cuò),錯(cuò)誤信息:{}'.format(e)) return result staticmethod def __re_find(response): find=re.findall(r"_ntes_quote_callback((.*));",response) if len(find)>=1: return to_obj(find[-1]) return None if __name__=='__main__': ticks=NetEaseData.get_realtime_datas(['sh588000','sz000001','bj831010']) [print(tick.symbol,tick.name,tick.price)for tick in ticks] tick=NetEaseData.get_realtime_data('sz127045') print(tick.symbol,tick.name,tick.price)
使用也非常簡(jiǎn)單
NetEaseData.get_realtime_data:獲取單個(gè)股票
NetEaseData.get_realtime_datas:獲取多個(gè)股票數(shù)據(jù)
這里我股票代碼用的是兼容原有新浪模式的,你可以自己做下修改。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129083.html
摘要:如果我們把這三個(gè)因子都加進(jìn)去會(huì)怎樣呢收益率為倍,沒(méi)有剛才那么好了,還是剛才的和凈利潤(rùn)環(huán)比增長(zhǎng)率這兩個(gè)因子比較好,那就保留兩個(gè)吧。因此,我們可以考慮使用排名的方法,對(duì)這些因子進(jìn)行排名。 導(dǎo)語(yǔ):每一位寬客都相信,影響股票漲跌的因素不勝枚舉,而這些因素就是因子!本文作為一篇合格的入門教程,提供代碼當(dāng)做框架,各路寬客可以自己測(cè)試,查看收益率,亦可利用聚寬python平臺(tái)自行構(gòu)建代碼。 規(guī)范源碼...
摘要:選取方法打開(kāi)網(wǎng)頁(yè),查看源代碼,搜索網(wǎng)頁(yè)的股票價(jià)格數(shù)據(jù)是否存在于源代碼中。將上述的代碼封裝成一個(gè)函數(shù),對(duì)東方財(cái)富網(wǎng)頁(yè)面解析的完整代碼如下所示接下來(lái)是獲得百度股票網(wǎng)鏈接描述單只股票的信息。 功能簡(jiǎn)介 目標(biāo): 獲取上交所和深交所所有股票的名稱和交易信息。輸出: 保存到文件中。技術(shù)路線: requests---bs4--re語(yǔ)言:python3.5 說(shuō)明 網(wǎng)站選擇原則: 股票信息靜態(tài)存在于ht...
摘要:貪心算法每一步必須滿足一下條件可行的即它必須滿足問(wèn)題的約束。四題目分析貪心算法,總是做出在當(dāng)前看來(lái)是最好的選擇,不從整體最優(yōu)上加以考慮,也就是說(shuō),只關(guān)心當(dāng)前最優(yōu)解,按照貪心策略,不關(guān)心以后,我們只關(guān)心當(dāng)前利益。 一、寫在前面 為什么要在LeetCode刷題?大家都知道不管是校招還是社招算法題是必考題,而這一部分恰巧是大多數(shù)人的短板,所以刷題首先是為了提高自身的編程能力,能夠在算法面試中...
摘要:將另存為格式時(shí),文件將工作表中的單元格所顯示的文本和數(shù)值以逗號(hào)分離進(jìn)行保存。方法此處使用模塊的函數(shù)讀取文件,函數(shù)以字典形式返回,字典的鍵則是這個(gè)單元格的標(biāo)題即列頭,每一個(gè)單元格內(nèi)容放在字典的值內(nèi)。 前言 數(shù)據(jù)是進(jìn)行量化交易的基礎(chǔ)和關(guān)鍵,目前國(guó)內(nèi)做量化產(chǎn)品的金融機(jī)構(gòu)大部分是從券商獲取高頻實(shí)時(shí)行情數(shù)據(jù)的,另外很多金融網(wǎng)站也提供了數(shù)據(jù)接口,可以調(diào)用接口方式獲取,也可以用爬蟲(chóng)的方式獲取。文本講...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02