你买股票吗?你学Kettle吗?

前面两个问题,任何一个回答“是”,本文都值得一读。如果两者都感兴趣,那么本文就值得细细品味。最好再花时间来分析一下获得的数据,从而多赚点银子。

一、背景概述

如果买股票,肯定会对股价感兴趣,那可都是真金白银啊!如果看中了一家上市公司,过去每一个开盘日的股价如何?有何规律可循?什么价格值得买入?什么价格要卖出?这一系列问题,肯定是每个股民都曾经苦苦思索过的。您可能学过K线图,研究过各类计算公式,甚至学过概率统计。但一切分析的前提,是要有数据。

如果学习Kettle,最好有些实战型的案例供参考,这样才能学得快。我们可以根据问题背景,试着自己思考解决方案。如果遇到拦路虎,可以看看案例是如何跨过的;如果全部能够自己搞定,也可以与案例进行对照,找到自己的优势和劣势,从而提高内力。

二、问题思路

现将问题具体化。

输入:股票代码和名称列表,格式为CSV文件,如下图所示。

图1:股票代码数据

输出:获取每一个开盘日的开价、收价、最高价、最低价,格式为CSV,如下图所示。

图2:股票价格数据

解决问题的思路:

1、明确数据来源。能够提供股价数据的网站较多,本文聚焦于技术研究,尽量不涉及具体三方公司,也尊重数据权属。总之一句话,首先要找到数据来源的URL。这对于购买股票的人来说,应该不难。

2、梳理萃取方法。有了地址,就可以通过HTTP协议拿到数据。但网站数据,往往掺杂非常多的干扰信息,我们需要思考真正需要的数据在哪里?是什么形式?有什么规律?然后利用字符串、正则表达式、JSON Path、XPath等处理文本的技术,提取目标数据。

3、输出文件数据。将萃取到的数据,按照指定格式和类型,输出到符合命名规范的文件中。

4、批量处理。前三步解决了某一支股票的数据获取问题,但我们感兴趣的股票显然不止一支,而是来自于文件(如图1)的一个系列。这个文件,我们可以按需删减,系统能够自动将文件中的每一支股票数据下载。所以还需要一个批量处理的技术,即将清单文件中的股票信息提取,并逐一执行数据萃取过程。

三、实例要点

1、总管作业(kd-sample001-j1.kjb)

只需每天执行一次总管作业,即可以实现股票列表的数据抽取。作业详情如图3所示。其中,转换T1(kd-sample001-t1.ktr)将股票清单提取,为批量执行T2提供数据;转换T2(kd-sample001-t2.ktr)则负责每支股票的数据提取,参数来自T1的执行结果,所以需要勾选Options标签页“执行每一个输入行”以及命名参数标签页“复制上一步结果到命名参数”。

图3:总管作业

2、股票清单转换(kd-sample001-t1.ktr)

提取股票清单数据,并复制到结果中,供后续作业中的其他节点使用。主要配置如图4所示。

图4:股票清单转换

3、股价数据转换(kd-sample002-t1.ktr)

提取股价数据主要需要三个环节。一是环境准备,包括获取变量、根据当前日期构造目标文件名称以及判断文件是否存在等;二是提取cookie,目标网站不允许直接访问数据提取地址,需要首先访问一次主页,得到cookie,并带入后续访问步骤中;三是访问数据地址,得到数据,并解析导出。

图5:股价数据转换

以下将主要步骤详情列举。

环境准备部分的主要步骤配置详情如图6所示。其中E1获取环境变量,gpdm代表股票代码,fn代表当前路径下最终存储输出文件的位置;C1利用公式,计算和格式化当前日期,加入文件名称后面,用于区分不同日期获取到的数据;O1用于判断文件是否已经存在,避免重复下载。

图6:环境准备部分配置详情

cookie获取部分主要步骤配置详情如图7所示。其中E2首次访问主页,并设置响应头字段为httpheader;E3从响应头httpheader的JSON中,解析得到cookie部分;C6/C7/C8采用字符串替换的方式,将得到的cookie进行格式化。

图7:cookie获取部分配置详情

数据解析部分主要步骤配置详情如图8所示。其中E5采用HTTP协议获取结构化数据,注意将已经格式化的cookie带入;E6采用JSON来解析数据,主要字段包括日期、开价、最高、收价,都可以通过JSON Path获取;L2采用CSV格式,输出解析数据到文件。

图8:数据解析部分配置详情

四、总结展望

本文通过从股票数据网站获取开盘价、收盘价、最高价、最低价数据的过程,学习Kettle中作业与转换的基本使用方法。如果需要下载案例中的转换与作业,可以使用微信扫码免费下载。二维码如下:

从实例学Kettle(一):获取股票行情数据相关推荐

  1. python 行情数据,拼多多股票:Python获取股票行情数据的一种方法

    Python获取股票行情数据的一种方法 拼多多股票 本号帮大家找了一个可免费获取股票行情数据的接口. Tushare社区目前主要维护新版本:tushare pro,数据更稳定拼多多股票质量更高,可获取 ...

  2. 【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)

    金融量化交易几种免费获取股票行情数据的方法 一.免费行情数据获取方式介绍 1.Tushare 简介 安装 代码仓库 说明文档 2. AKshare 简介 安装 代码仓库 说明文档 3. baostoc ...

  3. python处理期货数据分析_量化交易分析第一步利用Tushare轻松获取股票期货行情数据...

    Tushare简介 Tushare是一个免费开源的python财经数据接口包,主要能够实现对股票.期货等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁和多样的便于分析的 ...

  4. JS获取新浪实时股票行情数据

    转自:http://blog.csdn.net/simon803/article/details/7784682 股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取 ...

  5. python 大智慧股票行情数据_Python获取股票历史数据和收盘数据的代码实现

    各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析.关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数 ...

  6. python通达信接口如何获取股票行情?

    一般来说,股票代码和文件名称使用字符串类型,其它参数都使用数值类型 1 : 获取股票行情 可以获取多只股票的行情信息 需要传入一个列表,每个列表由一个市场代码, 一个股票代码构成的元祖构成 [ (市场 ...

  7. 如何通过python获取股票行情信息?

    python提供了股票数据接口库Tushare,但用Tushare获取股票实时数据存在只能连续运行2次,就会被网站服务器禁止. 即使加上了休息时间,依然只能跑3次. 故换了pytdx接口进行尝试,py ...

  8. Python用“高级复制粘贴”获取股票行情排行榜数据

    开发环境 解释器版本:python 3.8 代码编辑器:pycharm 2021.2 股票涨幅缩略界面 导入模块 import requests import json import csv 请求数据 ...

  9. 爬取东方财富网股票行情数据和资讯

    爬取东方财富网股票行情数据和资讯 这个需求源于我的一个练手项目 本篇博客参考:https://zhuanlan.zhihu.com/p/50099084 该博客介绍的东西本博客不做论述 使用技术: 语 ...

  10. 【读书笔记】抓取深圳或上海股市,或香港美国等有关股市某时间段内全部股票行情数据,进行主成分分析构造你个人的股市指数

    抓取深圳或上海股市,或香港美国等有关股市某时间段内全部股票行情数据,进行主成分分析构造你个人的股市指数,然后分析你的私家指数和该股市常用官方股票指数的相关性,判断主成分分析在构造股市指数上是否可用. ...

最新文章

  1. [Machine Learning with Python] Data Visualization by Matplotlib Library
  2. 干货丨有关机器学习每个人都应该了解的东西
  3. /etc/fstab自动挂载文件详解
  4. SPI 读取不同长度 寄存器_SPI协议,MCP2515裸机驱动详解
  5. 用thymeleaf转化日期格式的方法
  6. html与css结合动效案例,写CSS动效的常用套路(附demo的效果实现与源码)
  7. (转载)Memcached预定义常量
  8. SDL Trados 2019 (SR2)的下载和安装
  9. html——点击a标签打开新的标签页
  10. 不用恢复出厂设置啦,联想电脑YogaDuet如何升级win11?在BIOS开启加载系统初始值 打开Intel Platform Trust开启TMP2.0更新win11
  11. Qt 小例子学习14 - 动态滚动QScrollArea
  12. windows如何查看自己的ip地址
  13. 武汉计算机软件应届毕业生工资,精打细算告诉你一个应届毕业生在武汉工资多少才能活下来(汉口物件)...
  14. [转载]高一语文必修一寒假作业二
  15. java Twain 直接打印/界面打印
  16. python renamer模块_Python smart-image-renamer包_程序模块 - PyPI - Python中文网
  17. 和一个已经浙大本科毕业,现已年入百万的高管交流,交流时长一小时,看看我们究竟谈了什么?
  18. 模板匹配与定位配准——第7讲
  19. Android Senser 使用方式
  20. MySQL服务器时间同步问题

热门文章

  1. mysql 锁住一行数据_MySQL-锁
  2. model.load_state_dict(state_dict, strict=False)
  3. 排行前五的web3风投公司2022年都投了什么
  4. 苹果自带相册打马赛克_原来手机点击这个按钮,就能一键生成音乐电子相册!这也太厉害了...
  5. console口和telnet登录交换机
  6. Python 笔记(18)— 类的私有属性读取和修改方法
  7. electron +vue自定义点击最大化、最小化和关闭窗口事件功能
  8. 大数据:阿里数据仓库建模及管理体系OneData什么是阿里onedata
  9. 电脑网络通过usb分享给手机
  10. 给最真的自己加上static final