从通达信导出文件获取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 ...
随机推荐
- Netty之旅:你想要的NIO知识点,这里都有!
高清思维导图原件(xmind/pdf/jpg)可以关注公众号:一枝花算不算浪漫 回复nio即可.(文末有二维码) 前言 抱歉好久没更原创文章了,看了下上篇更新时间,已经拖更一个多月了. 这段时间也一直 ...
- OGG复制进程延迟高,优化方法一(使用索引)
日常运维过程中,可能发现OGG同步进程延迟很高: 本篇介绍其中的一种方式. OGG复制进程,或者说同步进程及通过解析ogg trail文件,输出dml语句,在目标库执行dml操作,那么延迟高可能性其一 ...
- C#算法设计排序篇之06-堆排序(附带动画演示程序)
堆排序(Heap Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/685 访问. 堆排序是指利用堆积树(堆)这 ...
- CODING DevOps 代码质量实战系列最后一课,周四发车
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一. <DevOps 代码质量实 ...
- kereas 实现鸢尾花分类
import tensorflow as tf from sklearn import datasets import numpy as np x_train=datasets.load_iris() ...
- SSRF 跨站请求伪造学习笔记
参考文章: 了解SSRF,这一篇就足够了 SSRF 学习之路 SSRF绕过方法总结 Weblogic SSRF漏洞 What-是什么 SSRF(Server-Side Request Forgery) ...
- Android 使用AS编译出错:找不到xx/desugar/debug/66.jar (系统找不到指定的文件。)
以为是合作人配置文件的问题,后发现是缓存的问题,只需要Clean project,即可. 若提示无法删除目录:Unable to delete directory,或许是因为你打开了另一个项目,只需关 ...
- JavaScript 空间坐标
基础知识 首先参考画布分为视口(窗口)与文档的含义 网页很多都是多屏,所以文档尺寸一般大于视口尺寸 视口尺寸不包括浏览器工具条.菜单.标签.状态栏等 当打开控制台后,视口尺寸相应变小 文档像posit ...
- JavaScript学习系列博客_9_JavaScript中的if语句、switch语句
条件判断语句 - 条件判断语句也称为if语句 - 语法一: if(条件表达式){ 语句... } - 执行流程: if语句执行时,会先对条件表达式进行求值判断, 如果值为true,则执行if后的语句 ...
- 彻底搞懂https原理
我终于彻底理解了https原理!!!激动之下,写一篇博客,搞一波分享!!! 本篇博客比较精彩的地方: 思维方式:也是借鉴一位大佬的,写得很棒.https://blog.csdn.net/guolin_ ...