新浪股票查詢接口
本系列目錄:-文摘-javascript
以大秦鐵路(股票代碼:601006)爲例,若是要獲取它的最新行情,只需訪問新浪的股票數據接口:http://hq.sinajs.cn/list=sh60...
這個url會返回一串文本,例如:html
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「;java
這個接口對於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″,時間;app
若是你要同時查詢多個股票,那麼在URL最後加上一個逗號,再加上股票代碼就能夠了;好比你要一次查詢大秦鐵路(601006)和大同煤業(601001)的行情,就這樣使用URL:網站
http://hq.sinajs.cn/list=sh60...url
返回的數據爲:firefox
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接口,可是新浪並無公開聲明發布了該接口;也就是說,他能夠在不通知任何人的狀況下,改變該接口的定義和實現。