新浪股票查詢接口


本系列目錄:-文摘-
1. 新浪的股票查詢接口:講解了該接口的數據結構;
2. 新浪的股票查詢接口(使用篇):用一個簡單的例子演示該接口的使用;
3. 實時股票信息查詢:一個高級的例子,能夠自動刷新股票信息,實現了實時更新;

以大秦鐵路(股票代碼:601006)為例,如果要獲取它的最新行情,只需訪問新浪的股票數據接口:http://hq.sinajs.cn/list=sh601006
這個url會返回一串文本,例如:

 

var hq_str_sh601006=大 秦鐵路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92, 22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300, 26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32;

這個接口對於JavaScript程序非常方便,通常的使用方式為,靜態或動態地在頁面中插入:

 

<script type=text/javascript src=http://hq.sinajs.cn/list=sh601006 charset=gb2312></script>

這樣一來,你就可以在JS中用變量名“hq_str_sh601006”訪問大秦鐵路的行情數據了。下一篇文章用JavaScript代碼演示了具體使用方法。

這個字符串由許多數據拼接在一起,不同含義的數據用逗號隔開了,按照程序員的思路,順序號從0開始。
0:”大秦鐵路”,股票名字;
1:”27.55″,今日開盤價;
2:”27.25″,昨日收盤價;
3:”26.91″,當前價格;
4:”27.55″,今日最高價;
5:”26.20″,今日最低價;
6:”26.91″,競買價,即“買一”報價;
7:”26.92″,競賣價,即“賣一”報價;
8:”22114263″,成交的股票數,由於股票交易以一百股為基本單位,所以在使用時,通常把該值除以一百;
9:”589824680″,成交金額,單位為“元”,為了一目了然,通常以“萬元”為成交金額的單位,所以通常把該值除以一萬;
10:”4695″,“買一”申請4695股,即47手;
11:”26.91″,“買一”報價;
12:”57590″,“買二”
13:”26.90″,“買二”
14:”14700″,“買三”
15:”26.89″,“買三”
16:”14300″,“買四”
17:”26.88″,“買四”
18:”15100″,“買五”
19:”26.87″,“買五”
20:”3100″,“賣一”申報3100股,即31手;
21:”26.92″,“賣一”報價
(22, 23), (24, 25), (26,27), (28, 29)分別為“賣二”至“賣四的情況”
30:”2008-01-11″,日期;
31:”15:05:32″,時間;

如果你要同時查詢多個股票,那么在URL最后加上一個逗號,再加上股票代碼就可以了;比如你要一次查詢大秦鐵路(601006)和大同煤業(601001)的行情,就這樣使用URL:

http://hq.sinajs.cn/list=sh601003,sh601001

返回的數據為:

 

  1. var hq_str_sh601003=柳 鋼股份, 18.91, 18.80, 18.81, 19.10, 18.51, 18.80, 18.81, 5125000, 96017794, 9115, 18.80, 5100, 18.79, 12000, 18.78, 1800, 18.77, 2600, 18.76, 1500, 18.81, 25283, 18.82, 4470, 18.84, 3400, 18.85, 1600, 18.86, 2008-01-11, 15:05:32;
  2. var hq_str_sh601001=大 同煤業, 40.00, 40.06, 39.81, 40.60, 39.13, 39.82, 39.83, 8117292, 324759633, 50, 39.82, 300, 39.81, 22809, 39.80, 1500, 39.79, 2600, 39.78, 600, 39.83, 10600, 39.85, 2100, 39.87, 2390, 39.88, 1000, 39.89, 2008-01-11, 15:05:32;

但如果你要查詢大盤指數,情況會有不同,比如查詢上證綜合指數(000001),使用如下URL:

http://hq.sinajs.cn/list=s_sh000001

返回的數據為:

 

var hq_str_s_sh000001=上證指數,5484.677,28.136,0.52,877247,15587495;

數據含義分別為:指數名稱,當前點數,當前價格,漲跌率,成交量(手),成交額(萬元);

查詢深圳成指的URL為:

http://hq.sinajs.cn/list=s_sz399001

數據構成方式與上證綜合指數的數據相同。

最后說一下,新浪並沒有明確提供這個查詢API,所以他可以在不通知任何人的情況下,改變這種查詢方式的接口和實現。

 

本系列目錄:  – 文摘-

1. 新浪的股票查詢接口:講解了該接口的數據結構;
2. 新浪的股票查詢接口(使用篇):用一個簡單的例子演示該接口的使用;
3. 實時股票信息查詢:一個高級的例子,能夠自動刷新股票信息,實現了實時更新;

上一篇日志中,我介紹了新浪個股的查詢接口和數據結構,現在用具體的代碼演示如何使用這個接口。

還是以查詢大秦鐵路為例,在頁面中插入這樣的代碼:

 

  1. <script type=text/javascript src=http://hq.sinajs.cn/list=sh601006 charset=gb2312></script>
  2. <script type=text/javascript>
  3.     var elements=hq_str_sh601006.split(“,”);
  4.     document.write(“current price:”+elements[3]);
  5. </script>

這段代碼輸出大秦鐵路(股票代碼:601006)的當前股價。下面是代碼的運行結果(請確認你的瀏覽器允許運行JavaScript,另外,RSS訂閱者請到Web頁面上來看):

current price:5.84current price:25.00
大家可以和新浪的結果對比,應該是同樣的值。當然,這段代碼不會自動刷新股票價格。
(update:我已經發布了能夠實時更新數據的代碼:鏈接)

我想重申一遍:目前還沒有免費提供的股票查詢接口,雖然看起來我們可以免費使用新浪的這個接口,但是新浪並沒有公開聲明發布了該接口;也就是說,他可以在不通知任何人的情況下,改變該接口的定義和實現。

 

 

實時股票信息查詢(JavaScript代碼)

本系列目錄:
1. 新浪的股票查詢接口:講解了該接口的數據結構;
2. 新浪的股票查詢接口(使用篇):用一個簡單的例子演示該接口的使用;
3. 實時股票信息查詢:一個高級的例子,能夠自動刷新股票信息,實現了實時更新;

前面一篇文章講了如何使用新浪的股價查詢接口,那里的例子比較簡單,不能實時更新股價信息。現在我給大家一個能實時更新股票信息的代碼。

還是以大秦鐵路為例,為了體現實時性,這段代碼顯示當前股價(由於不同瀏覽器動態載入script的方法略有不同,這段代碼只適用於IE和firefox瀏覽器):

 

  1. <input type=text id=realtimeprice></input>
  2. <script type=text/javascript src=http://hq.sinajs.cn/list=sh601006 id=jscodecharset=gb2312></script>
  3. <script type=text/javascript>
  4.     function reload(){
  5.         var code=document.getElementById(“jscode”);
  6.         if(!code) return;
  7.         document.body.removeChild(code);
  8.         code=document.createElement(“script”);
  9.         code.src=”http://hq.sinajs.cn/list=sh601006″;
  10.         code.id=”jscode”;
  11.         code.charset=”gb2312″;
  12.         document.body.appendChild(code);
  13.         elements=hq_str_sh601006.split(“,”);
  14.         document.getElementById(“realtimeprice”).value=elements[3];           
  15.     }
  16.     reload();
  17.     setInterval(reload,2000);//每兩秒鍾更新一次   
  18. </script>

請大家把這段代碼復制下來,插入到一個新建html文檔的body標簽之間。由於本網站其他腳本和這段代碼有些沖突,而且該代碼只適用於IE和firefox瀏覽器,所以我就不在這里顯示運行結果了。

不過我上傳了一個樣本,大家可以點擊這個鏈接看到效果(只限IE和Firefox):鏈接
(另外,請大家稍有耐心,只有原始數據出現變化的時候,我的代碼才能顯示出變化,對不對?而且我的代碼是每隔兩秒鍾獲取一次數據。當你發現數據不再變化的時候,應該是交易所已經結束當天交易了,等第二天吧 :) )

大家可以自行對照新浪的網頁看顯示的是否正確:鏈接

另外,我必須再次重申一遍:目前還沒有免費提供的股票查詢接口,雖然看起來我們可以免費使用新浪的這個Web接口,但是新浪並沒有公開聲明發布了該接口;也就是說,他可以在不通知任何人的情況下,改變該接口的定義和實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM