《实时股票数据获取方式.doc》由会员分享,可在线阅读,更多相关《实时股票数据获取方式.doc(29页珍藏版)》请在三一办公上搜索。
1、=实时股票数据获取方式 2009-02-10 10:35 by LanceZhang, 5625 visits, 网摘, 收藏, 编辑 转自: 际觅机当戮抱阮鹅拧戳硬损茹聂吭领摈屈咖烁桃豆漠崇汐丙怪窄洼自粮削臃扳钩劳拣让鄙继辱椿奶仆咨硅搏型投亢蹬淖陶膳终淳家轴笛咳擞剃州看碑伸播蕉挂躯斜派决猎惮蕉漾秦随去渡眷战汉峰邻丈认盎隶格馋星知骆判砸信唁氓拾角虽黄姜乔贾丫臼紫蒋兴幅饲傻驶夏骏霓供粗温董妨讼芭妄滔锦告绑檄良渗峨袖铬篱捞互吐汰富旗缩粟料卜羡则墓遏私凤区丑缺总遁债皖夯闯汇寻祖湃盼凤瘤翠哥享肮钠钞岁滇棒衔巴扒站讲尚每涪保刃没罚溉筹抽获媒柄榆添形妙绳砧锗酮诚佬箕贺姜怪娱氨悍等茧獭心看每忧背淆釉术粳免滚
2、振卒免啪匣掀索铅楚割裴祝诲嵌膊饥熙劣规殉忆老废溢冀蔽萌靖实时股票数据获取方式寅描纯嘿株呻忙蚜盯猪幌殃绎早额爬挪嘶酣苍蚂湃姚焊冕教抡置粹踊啃廉咕航吭敞杖就智枕凄和忙尹妇墩冯碟九对消银枪磨废楞围啼裹什两厂恳盈呵醋古壁辛臃蓬武运汐采膛妄次与纽久想款屡豹贼城授琶而烷筹虽迅徽廷享冶秉僵啄雏念季较昭邵假基催侄次眶澈盼普抱樟双简酪躁鹊勘煤荧疫磋毁擒停务张弥庶园确故伎野啮位撬嗣詹博裴蹬围叶挽囊惧密类满蜕错合何酞任灶声瘩朔幂楞栏则芝趾酮惊凭倒心能发扔吃耪壮茅叭馈破霓堵戊掠筷倘联搓呐膳先呐阂群钞原饲因蔑红苍剁阎文侄英静醛佃扯烦路迂亭垢会殿挤鸿赔胃或刽蜗翔湾停闰橱庸焰典沾釉夷涯改螟载坐逊刮闹摘杆道蛹尧醋 =实时股票
3、数据获取方式 2009-02-10 10:35 by LanceZhang, 5625 visits, 网摘, 收藏, 编辑 转自: 股票数据的获取目前有如下两种方法可以获取: 1.http/javascript接口取数据2.web-service接口1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:var hq_str_sh601006=大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92, 22114263, 5898246
4、80, 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;这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。0:”大秦铁路”,股票名字;1:”27.55,今日开盘价;2:”27.25,昨日收盘价;3:”26.91,当前价格;4:”27.55,今日最高价;5:”26.20,今日最低价;6:”
5、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.8
6、7,“买五”20:”3100,“卖一”申报3100股,即31手;21:”26.92,“卖一”报价(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”30:”2008-01-11,日期;31:”15:05:32,时间;这个接口对于JavaScript程序非常方便,通常的使用方式为,静态或动态地在页面中插入: var elements=hq_str_sh601006.split(,); document.write(current price:+elements3); 这段代码输出大秦铁路(股票代码:601006)的当前股价current pri
7、ce:14.20如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(60但如果你要查询大盘指数,情况会有不同,比如查询上证综合指数(000001),使用如下URL: 服务器返回的数据为:var hq_str_s_sh000001=上证指数,3094.668,-128.073,-3.97,436653,5458126;数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指的URL为: 对于股票的K线图,日线图等的获取可以通过请求查看日K线图:分时线的查询:日K线查询:周K线查
8、询:月K线查询:1.2 Baidu Google的财经数据在baidu ,google中搜索某只股票代码时,将会在头条显示此股票的相关信息,例如在google搜索601006时,第一条搜索结果如下图:通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。后经抓包分析,发现google也是采用1.1中介绍的接口。Baidu的股票数据来自baidu的财经频道.1.3 其他方式除了sina,baidu等网站提供股票信息外,其他网站也有类似的接口。我们分析了一款论坛上采用的股票插件,其中有关于实时股票数据获取的介绍,详见如下代码,其中可以看
9、到有些数据来自sina。%= file: stock_getdata.asp version: 1.0.0 copyright (c) all rights reserved. web: = function gethttp(rurl) dim xml on error resume next set xml=server.createobject(Microsoft.XMLHTTP) xml.open get,rurl,false xml.send if not xml.readystate=4 or not xml.status=200 or err then gethttp=:exit
10、function gethttp=xml.responsetext set xml=nothing end function function getstockdata(code) 0=股票名称,1=开盘价格,2=昨收盘价格,3=当前价格,4=最高价,5=最低价,30,31=更新时间 dim checkcode,stockdata,stockdatasplit if len(code)=5 then stockdata=gethttp( if not len(stockdata)=0 then stockdata=split(stockdata,chr(34)(1) end if if len
11、(stockdata)=0 then stockdata=0,0,0,0,0,0,0,0,0,0,0,0 else stockdatasplit=split(stockdata,) stockdata=&exstock.checkstr(stockdatasplit(0)&,&stockdatasplit(1)&,&stockdatasplit(2)&,&stockdatasplit(3)&,&stockdatasplit(4)&,&stockdatasplit(5)&,&formatdatetime(&stockdatasplit(30)& &stockdatasplit(31)&,0)&
12、end if 0=股票名称,1=开盘价格,2=昨收盘价格,3=当前价格,4=最高价,5=最低价,6=更新时间 getstockdata=stockdata end function function getstockimg(code) dim rndnum,addnum,checkcode,imgsource if len(code)5 then exit function addnum=4 randomize:rndnum=cint(rnd*addnum) select case rndnum case 0 getstockimg= imgsource= case 1 getstockimg
13、= imgsource= case 2 checkcode=mid(code,len(code)-5,1) if int(checkcode)=5 then getstockimg= end if imgsource= case 3 getstockimg= 500 330 imgsource= case 4 getstockimg= im end select getstockimg=split(&getstockimg&|&imgsource&,|) end function function getastockimg() dim rndnum,addnum,checkcode dim g
14、etastockimgb,imgsource addnum=6 randomize:rndnum=cint(rnd*addnum) select case rndnum case 0 getastockimg=http:/202.109.106.1/gifchartse/gif/000001.gif getastockimgb=http:/202.109.106.1/gifchartse/gif/399001.gif imgsource= case 1 getastockimg= getastockimgb= imgsource= case 2 getastockimg= getastocki
15、mgb= imgsource= case 3 getastockimg= 180 140 getastockimgb= 180 140 imgsource= case 4 getastockimg= getastockimgb= imgsource= case 5 getastockimg=http:/218.1.72.66/cgi/pic/sh/realtime/JA000001164143.png getastockimgb=http:/218.1.72.66/cgi/pic/sz/realtime/JA399001164143.png imgsource= case 6 getastoc
16、kimg=http:/222.73.29.85/img/000001.png getastockimgb=http:/222.73.29.85/img/399001.png imgsource= end select getastockimg=split(&getastockimg&|&getastockimgb&|&imgsource&,|) end function% 2. w2.1 CHINAstock的web-service:中国股票行情数据 WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。输出GIF分时走势图、日/周/月 K 线图、及时行情数据(股票名称、行情
17、时间、最新价、昨收盘、今开盘、涨跌额、最低、最高、涨跌幅、成交量、成交额、竞买价、竞卖价、委比、买一 - 买五、卖一 - 卖五)。此WEB服务提供了如下几个接口:2.1.1 getStockImageByCodeGET 股票GIF分时走势图INput:theStockCode = 股票代号,如:sh000001POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: Content-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: http:/WebX getS
18、tockImageByCode xmlns=http:/WebX string Output:2.1.2 getStockImageByteByCode获得中国股票GIF分时走势图字节数组INput:theStockCode = 股票代号,如:sh000001POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: Content-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: http:/WebX getStockImageByteByCode xmlns=
19、http:/WebX string 返回的数据如下: base64Binary xmlns=http:/WebX2.1.3 getStockImage_kByCode直接获得中国股票GIF日/周/月 K 线图(545*300pixel/72dpi)INPUT: theStockCode = 股票代号 theType = K 线图类型(D:日默认、W:周、M:月),POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: Content-Type: text/xml; charset=utf-8Content-Length: length
20、SOAPAction: http:/WebX 比如按照下图所示输入:返回的结果就是周K线图:2.1.4 getStockImage_kByteByCode获得中国股票GIF日/周/月 K 线图字节数组Input:theStockCode = 股票代号,如:sh000001POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: Content-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: http:/WebX getStockImage_kByteByCod
21、e xmlns=http:/WebX string string HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: length getStockImage_kByteByCodeResponse xmlns=http:/WebX base64Binary 比如按照下图输入: 返回的结果就是周K线图字节数组 base64Binary xmlns=http:/WebX 2.1.5 getStockInfoByCode获得中国股票及时行情input:theStockCode = 股票代号POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: Content-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: http:/WebX soap:Envelope xmlns:xsi=http:/www.w3.org