【股票】java+js获取股票实时数据
【历史数据】
方法1:首先感谢网易财经提供数据下载平台,访问网易财经首页 money.163.com,点击股票,进入到股票页面,然后随便点开网页中的某支股票,比如说万科A, 你就看到了万科A股票的相关情况,这里有万科A》资金流向》历史交易数据。(第一次数据可以由历史数据导入,以后可以每天收盘后把今天的数据定时任务到数据库)
方法2:代码获取如下
【例子(可直接点击)】http://q.stock.sohu.com/hisHq?code=cn_600588&start=20181030&end=20181030&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp
package cn.utils;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;public class UtilStock {public static void main(String[] args) {try {/*搜狐股票行情历史接口* 说明:其中 code :股票代码,格式 国别_代码* period :数据周期(d表示日线,m表示月线,w表示周线)* order:排序方法(D表示降序排,A表示升序排)* stat=1代表合计,stat=0代表不合计;* 返回的数据以这条为例"2018-07-20","61.22","61.83","0.61","1.00%","61.22","62.69","57637","35856.55","0.53%";* 分别表示: 日期,开盘,收盘,涨跌,涨幅,最低,最高,成交量,成交额,换手率。* 【优点】1)有重要数据换手率;2)免费;3)封装简单;* 【局限性】1)数据不是除权后的数据;2)一次最多只能读取100条交易记录;3)只能取日线、周线、月线数据;*/String url="http://q.stock.sohu.com/hisHq?code=cn_600588"+ "&start=20181030&end=20181030&stat=1&order=D&period=d"+ "&callback=historySearchHandler&rt=jsonp";URL ur = new URL(url);BufferedReader reader = new BufferedReader(new InputStreamReader(ur.openStream(), "GBK"));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}} catch (Exception e) {e.printStackTrace();}}}
【实时数据】如下:接口:http://hq.sinajs.cn/list=sh601006
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
这个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
调用sina专门的js服务器来解析数据,这种方式我使用了有很长一段时间,速度还是相当不错的,有时候比专门的行情软件的实时数据还快,下面是获取数据的部分代码:
String url = "http://hq.sinajs.cn/list=sh600151,sz000830,s_sh000001,s_sz399001,s_sz399106";try {URL u = new URL(url);byte[] b = new byte[256];InputStream in = null;ByteArrayOutputStream bo = new ByteArrayOutputStream();while (true) {try {in = u.openStream();int i;while ((i = in.read(b)) != -1) {bo.write(b, 0, i);}String result = bo.toString();String[] stocks = result.split(";");for (String stock : stocks) {String[] datas = stock.split(",");//根据对照自己对应数据}bo.reset();} catch (Exception e) {System.out.println(e.getMessage());} finally {if (in != null) {in.close();}}}} catch (Exception ex) {System.out.println(ex.getMessage());}
list后面的参数为相关的股票代码,可以同时附加多个股票代码,其中上证前面加"sh",深证前面加"sz",
如果只需获取股票交易的基本数据则在之前加"s_",如下面的
s_sh000001,s_sz399001,s_sz399106分别为:上证指数,深证成指 ,深证综指的基本指标数据
获取到的数据格式如下:
var hq_str_sh600151="航天机电,14.49,14.57,14.37,14.86,14.10,14.37,14.38,13146411,190836199,1900,14.37,10601,14.36,16100,14.35,1700,14.34,6900,14.33,49200,14.38,60400,14.39,25373,14.40,4500,14.41,10650,14.42,2008-03-07,15:05:32";
var hq_str_sz000830="鲁西化工,8.82,8.91,8.53,8.88,8.38,8.52,8.53,24754397,213611631.24,118400,8.52,38400,8.51,368623,8.50,19000,8.49,69300,8.48,170948,8.53,57160,8.55,44729,8.56,27300,8.57,32700,8.58,2008-03-07,15:20:51";
var hq_str_sh000001="上证指数,4315.808,4360.986,4300.515,4341.295,4265.829,0,0,56747402,92203521881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2008-03-07,15:05:32";
var hq_str_s_sz399001="深证成指,15560.853,-135.272,-0.86,3500683,963757";
var hq_str_s_sz399106="深证综指,1369.839,-18.264,-1.32,4279649095,4557752";
获取数据后,自己根据行情软件来对应数据,然后使用swing做个界面,呵呵,这样就大功告成了,个人使用了2个多月了,一般情况下非常好用的。
【股票】java+js获取股票实时数据相关推荐
- sentinel 端口_Sentinel原理:控制台是如何获取到实时数据的
Sentinel 系列教程,现已上传到 github 和 gitee 中: GitHub: https://github.com/all4you/sentinel-tutorial Gitee: ht ...
- js获取用户实时地理位置
js获取用户实时地理位置 if(navigator.geolocation) {var id = navigator.geolocation.watchPosition(function(positi ...
- js获取树形JSON数据根节点到任一子节点路径
js获取树形JSON数据根节点到任一子节点路径 数据结构,deep表示节点深度 现在定义一个方法传入一个子节点对象,返回其对应路径. 首先遍历数据将遍历顺序放在一个数组中![首先递归遍历数据将遍历顺序 ...
- Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI
现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序 文章目录 制作NBA数据爬虫 捋顺思路 编写代码 NBAReporter.py NB ...
- java代码获取银行实时汇率
java代码获取银行实时汇率 因为工作的时候甲方要求实施获取银行汇率,并且他们还不提供免费的接口,我就自己去网上找了接口,并写了实现代码,如果你需要的话直接复制粘贴就可以用了. 我用的是idea开发的 ...
- Java爬虫获取网页表格数据
//Java爬虫获取网页表格数据 public class Pachong implements Runnable { public void run() { String Rpt_date = nu ...
- js获取对象里数据条数
js获取对象里数据条数 对象无法使用length获取长度,需要使用js原生方法里的Object.keys方法进行获取,具体用法如下: let obj = {'a1': {'name': '张三''}, ...
- 通过js获取Model中数据
通过js获取Model中数据 前端js获取model 1.获取model的js代码必须写在html中 2.script中添加 th:inline="javascript" < ...
- js 实时显示服务器时间,js获取服务器实时时间
本文主要和大家分享js获取服务器实时时间,主要以代码的方法和大家分享,希望能帮助到大家. AJAX获取服务器时间 /* * ajax 函数,处理 ajax 请求 * @param function c ...
最新文章
- php的延迟绑定,PHP延迟静态绑定使用方法实例解析
- 我们应该怎么使用网络中赋予我们的权限
- MVC日期和其它字符串格式化
- luogu p3515 Lightning Conductor
- SpringCloud系列研究---Eureka服务消费Feign
- apache2: unrecognized service
- YDOOK: ANSYS Maxwell 19 教程17:Maxwell 2D 网格划分 网格划分工具有哪些
- php酒店系统论文,PHP酒店网站管理系统毕业论文
- 开发Windows物流管理系统——(一)前期准备
- Access仿Excel的RoundUp函数向上取整的方法。
- 手机cpu天梯图2020
- R语言分组画条形图——qplot
- ElasticSearch中文分词,看这一篇就够了
- c语言作业答,C语言练习作业及答案
- unity 碰撞检测的四种检测模式
- 《大话数据结构》看书笔记--算法
- LeetCode(172) Factorial Trailing Zeroes
- 计算机宣传部职责,计算机系团总支宣传部第一学期工作总结
- 使用Redis+Flask维护动态代理池
- 依靠国家资源,发展人工智能