从通达信导出文件获取A股所有股票代号名称(至2020年2月24日)
下文是讲述如何从通达信的输出文件中获得股票信息,如果想用Java爬虫从网页爬取信息请参考:https://www.cnblogs.com/xiandedanteng/p/12808381.html
要做个股票信息系统,首先要创建张基本表,表中包括股票代号和现用名。
要取得所有股票代号名称有很多方法,我分辨后觉得最方便快捷的是:
打开新浪通达信,敲入60,然后在菜单中选“系统”,“数据导出”,再选报表中所有数据,点导出,数据文件就会出现到C:\new_tdx\T0002\export\沪深A股20200224.txt 中了。
有图有真相:

当然,这个文件不能直接用,还需要用下面程序处理一下:
package readstocks; import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Pattern; public class StockReader {
public void readFrom(String filePathname) {
Map<String, String> map = new TreeMap<String, String>(); try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePathname), "UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
String[] arr = line.split("\\t+"); if (isStockCode(arr[0])) {
map.put(arr[0], arr[1]);
}
}
br.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} PrintWriter out;
try {
out = new PrintWriter("C:\\Users\\ufo\\Desktop\\output.txt"); int index = 0;
for (String code : map.keySet()) {
index++;
String name = map.get(code);
String raw = " insert into stock(id,code,name) values (''{0}'',''{1}'',''{2}'');";
Object[] arr = { String.valueOf(index), code, name };
String sql = MessageFormat.format(raw, arr);
out.println(sql);
} out.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} } private boolean isStockCode(String str) {
return Pattern.matches("\\d{6}", str);
} public static void main(String[] args) {
StockReader sr = new StockReader();
sr.readFrom("C:\\new_tdx\\T0002\\export\\沪深A股20200224.txt");
}
}
处理完了后output.txt就是我们需要的数据插入语句了,下面节选了一部分:
insert into stock(id,code,name) values ('1','000001','平安银行');
insert into stock(id,code,name) values ('2','000002','万 科A');
insert into stock(id,code,name) values ('3','000004','国农科技');
insert into stock(id,code,name) values ('4','000005','世纪星源');
insert into stock(id,code,name) values ('5','000006','深振业A');
insert into stock(id,code,name) values ('6','000007','全新好');
insert into stock(id,code,name) values ('7','000008','神州高铁');
insert into stock(id,code,name) values ('8','000009','中国宝安');
insert into stock(id,code,name) values ('9','000010','*ST美丽');
insert into stock(id,code,name) values ('10','000011','深物业A');
...
然后按下面语句建表:
create table stock(
id number(6,0) primary key not null,
code nvarchar2(6) not null,
name nvarchar2(10) not null
)
插入完了以后,将上面大批insert一次性在sqlplus里执行完就行。下面是我执行的结果:
3791 688358 祥生医疗
3792 688363 华熙生物
3793 688366 昊海生科
3794 688368 晶丰明源
3795 688369 致远互联
ID CODE NAME
---------- ------------ --------------------
3796 688388 嘉元科技
3797 688389 普门科技
3798 688396 华润微
3799 688398 赛特新材
3800 688399 硕世生物
已选择3800行。
SQL> select count(*) from stock;
COUNT(*)
----------
3800
SQL> select * from stock where code='601857';
ID CODE NAME
---------- ------------ --------------------
3167 601857 中国石油
总共三千八百多支股票的stock表就建完了。
祝贺你看到这里,因为点击下面的链接你将直接得到三个文本的下载包:
https://files.cnblogs.com/files/xiandedanteng/stocks20200224.rar
--2020年2月24日--
从通达信导出文件获取A股所有股票代号名称(至2020年2月24日)的更多相关文章
- 用Java爬虫爬取凤凰财经提供的沪深A股所有股票代号名称
要爬取的凤凰财经网址:http://app.finance.ifeng.com/list/stock.php?t=hs 本作主要采用的技术是jsoup,相关介绍网页:https://www.jians ...
- python+tushare获取A股所有股票代码和名称列表
接口:stock_basic 描述:获取基础信息数据,包括股票代码.名称.上市日期.退市日期等 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称 | 类型 ...
- java获取两个时间的相隔时间,包括年、月、日、时、分、秒
public static final int YEAR_RETURN = 0; public static final int MONTH_RETURN = 1 ...
- 【12月06日】A股全市场情绪指标整理分析
1. A股全市场的股权质押比例 2018年11月30日,A股全市场,质押股数占全市场总股本数比:9.997%,最近2周出现了3.2%的轻微回落.同历史时期相比,仍然处于高位. 2. A股全市场的解禁市 ...
- 【基础篇】DatePickerDialog日期控件的基本使用(二) ——分别获取年、月、日、时、分
项目步骤: 1.在Main.xml布局文件中定义对应的组件,Main.xml内容如下: <?xml version="1.0" encoding="utf-8&qu ...
- [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上
将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...
- 通达信5分钟.lc5和.lc1文件格式
一.通达信日线*.day文件 文件名即股票代码 每32个字节为一天数据 每4个字节为一个字段,每个字段内低字节在前 00 ~ 03 字节:年月日, 整型 04 ~ 07 ...
- 通达信zig函数的python实现
通达信zig函数的python实现 代码 # coding: utf-8 """ Created on Sat Jan 05 18:53:39 2019 http://w ...
- 通达信自动交易软件 z
1.要善用spy++ 2.不同的控件主要靠GetDlgCtrlID去区分 3.要获得另一个进程的焦点窗口(GetFocus)需要调用AttachThreadInput 4.尽量少用keybd_even ...
随机推荐
- 2020-05-21:es底层读写原理?倒排索引原理?
福哥答案2020-05-21: es不熟悉,答案仅供参考:es写数据过程1.客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2.coordinatin ...
- MyKTV系统项目的感想
不粉身碎骨,何以脱胎换骨! 3月11号,我们迎来S1的尾巴.这期间有温暖,默契,有项目.一切刚刚好.刚刚正式接到KTV这个微微型的项目的时候,还是很害怕的,虽然老师在前两天就已经提到也讲到,KTV系统 ...
- next()与nextLine()的区别
abc def ghij kl mno pqr st uvw xyz 你用next(),第一次取的是abc,第二次取的是def,第三次取的是ghij 你用nextLine(),第一次取的是abc de ...
- 实践Kong for Kubernetes(K8S),kong最新2.1版本和kong-ingress-controller:0.9.1版本
先决条件 Kubernetes集群:您可以使用Minikube或GKE集群.Kong与Kubernetes的所有发行版兼容. kubectl访问权限:您应该已经kubectl安装并配置为与Kubern ...
- webpack打包原理
什么是 webpack ? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依 ...
- 因网络时代与云端应用而生的AGPL-3.0授权条款
此篇文章转载自:因應網路時代與雲端應用而生的 AGPL-3.0 授權條款 如你所见,原文为繁体,我将其转为简体并将"网路"替换为"网络",方便阅读.并未修改 ...
- vue自定义可输入的选择框组件
vue自定义可输入的选择框组件 props: 属性 说明 类型 默认值 selectDataList 下拉框中的内容 Array 空数组([]) value 输入框中的内容 String 空字符串(& ...
- 解析Class文件之创建InstanceKlass对象
ClassFileParser::parseClassFile()方法会将解析Class文件的大部分结果保存到instanceKlass对象中.创建instanceKlass对象的代码如下: int ...
- 【NOI2014】动物园 - KMP
题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天, ...
- 【NOI2015】荷马史诗 - 哈夫曼树
题目描述 追逐影子的人,自己就是影子 ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...