當我們需要通過網(wǎng)絡來自動獲取股指或股票的深度行情時,一般有以下兩種方法可以獲得。
目前除了使用Python進行爬蟲獲取(需要解析html獲得)外還可以通過新浪提供的JS行情服務器獲得,本文采用的是后者(還是非常方便的)。本文采用新浪JS獲取的方式,主要有兩種方法:
1、查詢股指或股票若采用這種格式(s_yyXXXXXX)一般返回的含有以下字段:
指數(shù)名稱,當前點數(shù),漲跌幅,漲跌率,成交量(手),成交額(萬元);
2、查詢股指或股票采用這種格式(yyXXXXXX)一般返回的含有以下字段:
股票名稱,今開盤,昨收盤,最新價,最高價,最低價,買一價,賣一價,成交量,成交額(萬元),買一量,買一價,...,買五量,買五價,賣一量,賣一價,...,賣五量,買五價,日期,時間
由于第一種方法沒有直接給出昨收盤需要計算得到。
Show me your code:
1 PRivate static double GetThreeIndexBySina() 2 { 3 double precloseindex = 0; 4 try 5 { 6 //s_yyXXXXXX格式數(shù)據(jù)返回含義分別為:指數(shù)名稱,當前點數(shù),漲跌幅,漲跌率,成交量(手),成交額(萬元); 7 //股票查詢規(guī)則:sh601857,sz002230:中石油,科大訊飛(以sh開頭代表滬市A股,以sz開頭代表深市股票,后面是對應的股票代碼) 8 //股指查詢規(guī)則:s_sh000001,s_sz399001,s_sz399106,s_sh000300:上證指數(shù),深證成指,深證綜指,滬深300 9 string url = "http://hq.sinajs.cn/list=s_sh000300";10 HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);11 HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse();12 Stream stream = webreponse.GetResponseStream();13 byte[] rsByte = new Byte[webreponse.ContentLength]; //save data in the stream14 stream.Read(rsByte, 0, (int)webreponse.ContentLength);15 string tmp = System.Text.Encoding.UTF8.GetString(rsByte, 0, rsByte.Length).ToString();16 string[] index = tmp.Split('"');17 string[] datas = index[1].Split(',');18 double del = Convert.ToDouble(datas[2]);19 precloseindex = Convert.ToDouble(datas[1]);20 precloseindex = Math.Round(precloseindex - del, 2, MidpointRounding.AwayFromZero);21 }22 catch (Exception exp)23 {24 Console.WriteLine(exp.Message);25 }26 return precloseindex;27 }
以上是為了使用第一種方法獲取昨收盤(比較精簡),如果怕麻煩可以直接使用第二種方法直接獲得。。。
新聞熱點
疑難解答