雅虎和新浪股票接口调用方法收集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

雅虎和新浪股票接口调用方法收集
[]获取股票数据的2个简单方法
blog.science./home.php?mod=space&uid=461456&do=blog&id=4552 11
1.原文地址:
实时股票数据接口大全
股票数据的获取目前有如下两种方法可以获取:
1. /javascript接口取数据
2. web-service接口
1./javascript接口取数据
1.1Sina股票数据接口
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:
hq.sinajs./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, xx-01-11, 15:05:32";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。

0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
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″,“买二”
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:”xx-01-11″,日期;
31:”15:05:32″,时间;
一个简单的JavaScript应用例子:
这段代码输出大秦铁路(股票代码:601006)的当前股价
current price:14.20
如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:
hq.sinajs./list=sh601003,sh601001
查询大盘指数,比如查询上证综合指数(000001):
hq.sinajs./list=s_sh000001
服务器返回的数据为:
var hq_str_s_sh000001="上证指
数,3094.668,-128.073,-3.97,436653,5458126";
数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指数:
hq.sinajs./list=s_sz399001
对于股票的K线图,日线图等的获取可以通过请求
image.sinajs./…./…/*.gif此URL获取,其中*代表股票代码,详见如下:
查看日K线图:
image.sinajs./newchart/daily/n/sh601006.gif
分时线的查询:
image.sinajs./newchart/min/n/sh000001.gif
日K线查询:
image.sinajs./newchart/daily/n/sh000001.gif
周K线查询:
image.sinajs./newchart/weekly/n/sh000001.gif
月K线查询:
image.sinajs./newchart/monthly/n/sh000001.gif
1.2 Baidu&Google的财经数据
第一条搜索结果如下图:
通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。

后经抓包分析,发现google也是采用1.1中介绍的接口。

Baidu的股票数据baidu的财经频道
==================================
2. 这个方法作者页面上说过不得,所以摘抄一段:
剩下的在(实际上是上面方法的Java版)
炒股有一段时间了,发现现在的股票行情软件在很多情况下并不是太好用,我炒股的时候喜欢看盘口的实时交易记录,如果同时关注多支股票的话,我用过的行情软件没有找到同时观看多支股票盘口
交易数据的功能,另外在工作的时候使用目前的行情软件也不太方便。

所以打算自己写个专门的行情软件,但是数据源是个最棘手的问题,经过搜索和不懈的努力,找到了两种方式:
1. 通过webservice调用,该网站提
供了的和收费的服务,但是的限制了每天的请求次数,在此不太
实用。

调用sina专门的js服务器来解析数据,这种方式我使用了
有很长一段时间,速度还是相当不错的,有时候比专门的行情软件的实时数据还快,下面是获取数据的部分代码:
3. 从新浪获取历史数据的方法:
这几天在网上找股票的历史数据想研究研究,最后找到一个不错
的接口,于雅虎,是在一个博客上找到的,地址
为:./stock/history_min.php\?symbol=sh\d{6}&date=\d{4}-\d{2 }-\d{2}'>\s*([^\s]+)\s+\s*
\s*<td[^\d]*([^<]*)
\s+<td[^\d]*([^<]*)
\s+<td[^\d]*([^<]*)\s+<td[^\d]*([^<]*)\s+"
$result = [RegEx]::matches($content, $reg)
foreach($item in $result)
{
$date = $item.Groups[1].Value # 时间
$opening = $item.Groups[2].Value # 开盘
$maxHigh = $item.Groups[3].Value # 最高
$closing = $item.Groups[4].Value # 收盘
$maxLow = $item.Groups[5].Value # 最低
Write-Host $date $opening $maxHigh $closing $maxLow
}
C# Sina股票接口
(xx-01-25 14:05:52)
需要注意的这个只是获取单只股票
代码的用处,通过这个代码有炒股的朋友就可以写出简单的自动止损和按一定价格入场的程序了。

(国内正规券商不支持这种功能,可能是为了防止一些东西。


我们先来看一下股票信息的类
namespace Qianfa..Library.Entity
{
public class StockInfo {
public string Name
{
get;
set;
}
public decimal TodayOpen {
get;
set;
}
public decimal YesterdayClose {
get;
set;
}
public decimal Current
{
get;
set;
}
public decimal High {
get;
set;
}
public decimal Low { get; set; }
///
/// 竟买价买1
///
public decimal Buy
{ get; set; }
///
/// 竟卖价卖1
///
public decimal Sell { get; set; }
///
/// 成交数单位股数通常除于100成为手 ///
public int VolAmount { get; set; } ///
/// 成交多少钱,单位元
///
public decimal VolMoney { get; set; }
///
/// 新浪是可以看到5个,5档看盘 ,买1-买5 ///
public List BuyList { get; set; }
///
/// 卖1-卖5
///
public List SellList { get; set; }
///
/// Date and Time
///
public DateTime Time { get; set; }
public override string ToString()
{
return Name + ": " + VolAmount + ":" + Current; }
}
}
namespace Qianfa..Library
{
///股票数据获取接口,你可以自己实现新浪yahoo...
public interface IDataService
{
StockInfo GetCurrent(string stockCode);
}
}
namespace Qianfa..DataServices
{
public class Sina : IDataService
{
private const string dataurl = "hq.sinajs./list={0}";
#region IStockInfo Members
HttpClient client;
private StockInfo PrevInfo;
public StockInfo GetCurrent(string stockCode) {
try
{
if (client == null)
{
client = new HttpClient();
}
if (stockCode.Substring(0, 2) == "60")//上海是600打头 {
stockCode = "sh" + stockCode;
}
else if(stockCode.Substring(0,2)=="00")//深圳
{
stockCode = "sz" + stockCode;
}
else if (stockCode.Substring(0, 2) == "51")//上海基金 {
stockCode = "sh" + stockCode;
}
string url = string.Format(dataurl, stockCode);
string data = client.DownloadString(string.Format(url, stockCode));
PrevInfo = Parse(data);
return PrevInfo;
}
catch
{
return PrevInfo;
}
}
///
/// Parse Sina data to stock Info
///
///
///
public static StockInfo Parse(string content)
{
int end = content.IndexOf('"',start);
string input = content.Substring(start, end - start); string[] temp = input.Split(',');
if (temp.Length != 32)
{
return null;
}
StockInfo info = new StockInfo();
= temp[0];
info.TodayOpen = decimal.Parse(temp[1]);
info.YesterdayClose = decimal.Parse(temp[2]); info.Current = decimal.Parse(temp[3]);
info.High = decimal.Parse(temp[4]);
info.Low = decimal.Parse(temp[5]);
info.Buy = decimal.Parse(temp[6]);
info.Sell = decimal.Parse(temp[7]);
info.VolAmount = int.Parse(temp[8]);
info.VolMoney = decimal.Parse(temp[9]); info.BuyList = new List(5);
int index = 10;
for (int i = 0; i < 5; i++)
{
GoodsInfo goods = new GoodsInfo();
goods.State = GoodsState.Buy;
goods.Amount = int.Parse(temp[index]);
index++;
goods.Price = decimal.Parse(temp[index]); index++; info.BuyList.Add(goods);
}
info.SellList = new List(5);
for (int i = 0; i < 5; i++)
{
GoodsInfo goods = new GoodsInfo();
goods.State = GoodsState.Sell;
goods.Amount = int.Parse(temp[index]);
index++;
goods.Price = decimal.Parse(temp[index]); index++;
info.SellList.Add(goods);
}
info.Time = DateTime.Parse(temp[30] + " " + temp[31]); return info;
}
#endregion
}
}
public class GoodsInfo
{
public int Amount
{ get; set; }
public decimal Price
{
get;
set;
股票实时API数据接口
/javascript接口取数据
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:hq.sinajs./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, xx-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:”xx-01-11″,日期;
31:”15:05:32″,时间;
这个接口对于JavaScript程序非常方便,通常的使用方式为,静态或动态地在页面中插入:
这段代码输出大秦铁路(股票代码:601006)的当前股价
current price:14.20
如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:
hq.sinajs./list=sh601003,sh601001
但如果你要查询大盘指数,情况会有不同,比如查询上证综合指数(000001),使用如下URL:
hq.sinajs./list=s_sh000001 服务器返回的数据为:
var hq_str_s_sh000001="上证指
数,3094.668,-128.073,-3.97,436653,5458126";
数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指的URL为:
hq.sinajs./list=s_sz399001
对于股票的K线图,日线图等的获取可以通过请求
image.sinajs./?./?/*.gif此URL获取,其中*代表股票代码,详见如下:
查看日K线图:
image.sinajs./newchart/daily/n/sh601006.gif 分时线的查询:
image.sinajs./newchart/min/n/sh000001.gif 日K线查询:
image.sinajs./newchart/daily/n/sh000001.gif 周K线查询:
image.sinajs./newchart/weekly/n/sh000001.gif 月K线查询:
image.sinajs./newchart/monthly/n/sh000001.gif :大CC
内容仅供参考。

相关文档
最新文档