重新浪JS服務器得到股票和股指深度行情(.NET)

當咱們須要經過網絡來自動獲取股指或股票的深度行情時,通常有如下兩種方法能夠得到。
目前除了使用Python進行爬蟲獲取(須要解析html得到)外還能夠經過新浪提供的JS行情服務器得到,本文采用的是後者(仍是很是方便的)。本文采用新浪JS獲取的方式,主要有兩種方法:
一、查詢股指或股票若採用這種格式(s_yyXXXXXX)通常返回的含有如下字段:
指數名稱,當前點數,漲跌幅,漲跌率,成交量(手),成交額(萬元);
二、查詢股指或股票採用這種格式(yyXXXXXX)通常返回的含有如下字段:
股票名稱,今開盤,昨收盤,最新價,最高價,最低價,買一價,賣一價,成交量,成交額(萬元),買一量,買一價,...,買五量,買五價,賣一量,賣一價,...,賣五量,買五價,日期,時間
因爲第一種方法沒有直接給出昨收盤須要計算獲得。
Show me your code:
 1 private static double GetThreeIndexBySina()
 2 {
 3     double precloseindex = 0;
 4     try
 5     {
 6         //s_yyXXXXXX格式數據返回含義分別爲:指數名稱,當前點數,漲跌幅,漲跌率,成交量(手),成交額(萬元);
 7         //股票查詢規則:sh601857,sz002230:中石油,科大訊飛(以sh開頭表明滬市A股,以sz開頭表明深市股票,後面是對應的股票代碼)
 8         //股指查詢規則:s_sh000001,s_sz399001,s_sz399106,s_sh000300:上證指數,深證成指,深證綜指,滬深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 stream
14         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 }

以上是爲了使用第一種方法獲取昨收盤(比較精簡),若是怕麻煩能夠直接使用第二種方法直接得到。。。html

相關文章
相關標籤/搜索