新浪股票查詢介面
本系列目錄:-文摘-
- 新浪的股票查詢介面:講解了該介面的資料結構;
- 新浪的股票查詢介面(使用篇):用一個簡單的例子演示該介面的使用;
- 實時股票資訊查詢:一個高階的例子,能夠自動重新整理股票資訊,實現了實時更新;
以大秦鐵路(股票程式碼:601006)為例,如果要獲取它的最新行情,只需訪問新浪的股票資料介面:http://hq.sinajs.cn/list=sh60…
這個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=sh60…“ 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=sh60…
返回的資料為:
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“;
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_sh…
返回的資料為:
var hq_str_s_sh000001=“上證指數,5484.677,28.136,0.52,877247,15587495“;
資料含義分別為:指數名稱,當前點數,當前價格,漲跌率,成交量(手),成交額(萬元);
查詢深圳成指的URL為:
http://hq.sinajs.cn/list=s_sz…
資料構成方式與上證綜合指數的資料相同。
最後說一下,新浪並沒有明確提供這個查詢API,所以他可以在不通知任何人的情況下,改變這種查詢方式的介面和實現。
本系列目錄: – 文摘-
- 新浪的股票查詢介面:講解了該介面的資料結構;
- 新浪的股票查詢介面(使用篇):用一個簡單的例子演示該介面的使用;
- 實時股票資訊查詢:一個高階的例子,能夠自動重新整理股票資訊,實現了實時更新;
在上一篇日誌中,我介紹了新浪個股的查詢介面和資料結構,現在用具體的程式碼演示如何使用這個介面。
還是以查詢大秦鐵路為例,在頁面中插入這樣的程式碼:
<script type=“text/javascript“ src=“http://hq.sinajs.cn/list=sh60…“ charset=“gb2312“></script>
<script type=“text/javascript“>
var elements=hq_str_sh601006.split(“,”);
document.write(“current price:”+elements[3]);
</script>
這段程式碼輸出大秦鐵路(股票程式碼:601006)的當前股價。下面是程式碼的執行結果(請確認你的瀏覽器允許執行JavaScript,另外,RSS訂閱者請到Web頁面上來看):
current price:5.84current price:25.00
大家可以和新浪的結果對比,應該是同樣的值。當然,這段程式碼不會自動重新整理股票價格。
(update:我已經發布了能夠實時更新資料的程式碼:連結)
我想重申一遍:目前還沒有免費提供的股票查詢介面,雖然看起來我們可以免費使用新浪的這個介面,但是新浪並沒有公開宣告發布了該介面;也就是說,他可以在不通知任何人的情況下,改變該介面的定義和實現。
實時股票資訊查詢(JavaScript程式碼)
本系列目錄:
- 新浪的股票查詢介面:講解了該介面的資料結構;
- 新浪的股票查詢介面(使用篇):用一個簡單的例子演示該介面的使用;
- 實時股票資訊查詢:一個高階的例子,能夠自動重新整理股票資訊,實現了實時更新;
前面一篇文章講了如何使用新浪的股價查詢介面,那裡的例子比較簡單,不能實時更新股價資訊。現在我給大家一個能實時更新股票資訊的程式碼。
還是以大秦鐵路為例,為了體現實時性,這段程式碼顯示當前股價(由於不同瀏覽器動態載入script的方法略有不同,這段程式碼只適用於IE和firefox瀏覽器):
<input type=“text“ id=“realtimeprice“></input>
<script type=“text/javascript“ src=“http://hq.sinajs.cn/list=sh60…“ id=“jscode“charset=“gb2312“></script>
<script type=“text/javascript“>
function reload(){
var code=document.getElementById(“jscode”);
if(!code) return;
document.body.removeChild(code);
code=document.createElement(“script”);
code.src=”http://hq.sinajs.cn/list=sh601006″;
code.id=”jscode”;
code.charset=”gb2312″;
document.body.appendChild(code);
elements=hq_str_sh601006.split(“,”);
document.getElementById(“realtimeprice”).value=elements[3];
}
reload();
setInterval(reload,2000);//每兩秒鐘更新一次
</script>
請大家把這段程式碼複製下來,插入到一個新建html文件的body標籤之間。由於本網站其他指令碼和這段程式碼有些衝突,而且該程式碼只適用於IE和firefox瀏覽器,所以我就不在這裡顯示執行結果了。
不過我上傳了一個樣本,大家可以點選這個連結看到效果(只限IE和Firefox):連結
(另外,請大家稍有耐心,只有原始資料出現變化的時候,我的程式碼才能顯示出變化,對不對?而且我的程式碼是每隔兩秒鐘獲取一次資料。當你發現資料不再變化的時候,應該是交易所已經結束當天交易了,等第二天吧 ? )
大家可以自行對照新浪的網頁看顯示的是否正確:連結
另外,我必須再次重申一遍:目前還沒有免費提供的股票查詢介面,雖然看起來我們可以免費使用新浪的這個Web介面,但是新浪並沒有公開宣告發布了該介面;也就是說,他可以在不通知任何人的情況下,改變該介面的定義和實現。