您的位置:首页 > 其它

实时股票数据接口大全

2013-05-16 09:06 417 查看
股票数据的获取目前有如下两种方法可以获取:
1. http/javascript接口取数据
2. web-service接口

1.http/javascript接口取数据

1.1Sina股票数据接口

以大秦铁路(股票代码: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";

这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从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″,时间;


一个简单的JavaScript应用例子:

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

这段代码输出大秦铁路(股票代码:601006)的当前股价


current price:14.20


如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:
http://hq.sinajs.cn/list=sh601003,sh601001
查询大盘指数,比如查询上证综合指数(000001):
http://hq.sinajs.cn/list=s_sh000001
服务器返回的数据为:


var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";


数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);

查询深圳成指数:
http://hq.sinajs.cn/list=s_sz399001
对于股票的K线图,日线图等的获取可以通过请求http://image.sinajs.cn/…./…/*.gif此URL获取,其中*代表股票代码,详见如下:

查看日K线图:
http://image.sinajs.cn/newchart/daily/n/sh601006.gif


分时线的查询:
http://image.sinajs.cn/newchart/min/n/sh000001.gif


日K线查询:
http://image.sinajs.cn/newchart/daily/n/sh000001.gif


周K线查询:
http://image.sinajs.cn/newchart/weekly/n/sh000001.gif


月K线查询:
http://image.sinajs.cn/newchart/monthly/n/sh000001.gif


1.2 Baidu&Google的财经数据
在baidu, google中搜索某只股票代码时,将会在头条显示此股票的相关信息,例如在google搜索601006时,
第一条搜索结果如下图:
通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。后经抓包分析,发现google也是采用1.1中介绍的接口。

Baidu的股票数据来自baidu的财经频道
http://stock.baidu.com/

深成指:  <script type="text/javascript" src="http://hq.sinajs.cn/list=sz399001" charset="gb2312"></script>
上证指:  <script type="text/javascript" src="http://hq.sinajs.cn/list=sh000001" charset="gb2312"></script>
道琼斯:  <script type="text/javascript" src="http://hq.sinajs.cn/list=int_dji" charset="gb2312"></script>
纳斯达克: <script type="text/javascript" src="http://hq.sinajs.cn/list=int_nasdaq" charset="gb2312"></script>
恒生指:  <script type="text/javascript" src="http://hq.sinajs.cn/list=int_hangseng" charset="gb2312"></script>
日经指数: <script type="text/javascript" src="http://hq.sinajs.cn/list=int_nikkei" charset="gb2312"></script>
台湾加权: <script type="text/javascript" src="http://hq.sinajs.cn/list=b_TWSE" charset="gb2312"></script>
新加坡:  <script type="text/javascript" src="http://hq.sinajs.cn/list=b_FSSTI" charset="gb2312"></script>

对应外汇可以如下格式:
http://hq.sinajs.cn/list=AUDUSD,EURUSD,GBPUSD,USDCAD,USDCHF,USDJPY,AUDJPY,AUDNZD
===============================================================

程序实现

package org.slave4j.demo.blog.action;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;

/**
* 解析网页中的内容
*/
public class internetContent{
public static Collection<String> getURLCollection(String address){
Collection<String> collection = new LinkedList<String>();
//通知Java您要通过代理进行连接
System.getProperties().put("proxySet","true");
//指定代理所在的服务器
System.getProperties().put("proxyHost","192.168.50.243");
//指定代理监听的端口
System.getProperties().put("proxyPort","10080");
try{
URL url = new URL(address);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
conn.connect();
InputStream in = conn.getInputStream();
InputStreamReader input = new InputStreamReader(in, "gbk");
BufferedReader buf = new BufferedReader(input);
String nextLine = buf.readLine();

while(nextLine != null){
collection.add(nextLine);
nextLine = buf.readLine();
}
}catch(Exception e){
e.printStackTrace();
}
return collection;
}

public static void main(String[] args){
while(true){
String address = "http://hq.sinajs.cn/list=AUDUSD,EURUSD,GBPUSD,USDCAD,USDCHF,USDJPY,AUDJPY,AUDNZD";
Collection urlCollection = getURLCollection(address);

Iterator iter = urlCollection.iterator();
String buf = "";
while(iter.hasNext()){
buf += ((String) iter.next() + "\n");
}
System.out.println(buf);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: