自己编写的fft程序_编写一个获得股票信息的程序,供以后自己程序分析用

各位老总,有时我们想钱想疯了(没办法,上有老,下有小),就去玩股票,虽然大多数当菲菜,让人割了,但还是乐此不疲。

上APP、上软件看各股资料太麻烦?不好找出各股的对比数据?那你可以把各股资料放入数据库,像平常我们玩数据库一样,想查哪个市值多少,哪个地方的,非常方便。

下面程序是我之前写的读取各股票信息,然后存到数据库里,供自己分析,大家可以参考,编写更详细的信息。

dbd1419043c15c2c0044c390be72ccce.png

主要是读取东方财富网的数据

上证各股资料的URL都是:http://quote.eastmoney.com/sh+股票编号.html

深上证各股资料的URL都是:http://quote.eastmoney.com/sz+股票编号.html

代码如下(几年前的JAVA代码,能运行就得了)

package yjz.nms.cla;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.ConnectException;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class GetStockInfo {

public void getData() throws IOException {

//股票名

String stockname=null ;

//板块

String bankuai=null;

//业务范围

String yewufanwei=null ;

//概念

String gainian=null ;

//发行价

float faxingjia;

//注册资本

float zhuceziben = 0 ;

//市值

float shizhi ;

//市盈率

float shiyinglv = 0 ;

//每股收益

float meigushouyi = 0 ;

//业务收入

float yingyeshouru = 0 ;

//收入同比

float shourutongbi ;

//利润

float liren = 0 ;

//利润同比

float lirentongbi ;

//市净率

float shijinglv ;

Connection con = null;

// 连接数据库

con = connDB(con);

String codeSqe=null;

codeSqe=getCodeSeq(con );

String fileNameN = "e:allStockCode.ini";

File f = new File(fileNameN);

String data = null;

if (f.exists()) {

BufferedReader br = new BufferedReader(new InputStreamReader(

new FileInputStream(fileNameN), "UTF-8"));

while((data=br.readLine())!=null && ! data.equals("")){

data=data.substring(data.indexOf("(")+1,data.indexOf(")"));

String urls = null;

if (data.startsWith("60")) {

urls = "http://quote.eastmoney.com/sh"+data+".html";

} else {

urls = "http://quote.eastmoney.com/sz"+data+".html";

}

String htmlContent= getHtmlContent(urls,"gb2312");

stockname = getContent(htmlContent,"

(.*?)

");

shizhi = Float.parseFloat(getContent(htmlContent,"(.*?)亿"));

String tmp=getContent(htmlContent,"(.*?)");

if(tmp.indexOf("-")<0){

shiyinglv = Float.parseFloat(tmp);

}

tmp=getContent(htmlContent,"收益.*(d+.d+?)");

if(tmp.indexOf("-")<0){

meigushouyi = Float.parseFloat(tmp);

}

String yingyeshourus = getContent(htmlContent,"

收入:(.*?)");

if(yingyeshourus.indexOf("亿")>0){

yingyeshouru=Float.parseFloat(yingyeshourus.substring(0,yingyeshourus.indexOf("亿")))*10000;

}else{

yingyeshouru=Float.parseFloat(yingyeshourus.substring(0,yingyeshourus.indexOf("万")));

}

shourutongbi = Float.parseFloat(getContent(htmlContent,"同比:(.*?)%"));

String lirens = getContent(htmlContent,"

净利润:(.*?)");

if(lirens.indexOf("亿")>0){

liren=Float.parseFloat(lirens.substring(0,lirens.indexOf("亿")))*10000;

}else{

tmp=lirens.substring(0,lirens.indexOf("万"));

liren=Float.parseFloat(tmp);

}

lirentongbi = Float.parseFloat(getContent(htmlContent,"

同比:(.*?)%"));

shijinglv = Float.parseFloat(getContent(htmlContent,"

市净率: (.*?)"));

if (data.startsWith("60")) {

urls = "http://f10.eastmoney.com/f10_v2/CompanySurvey.aspx?code=sh"+data;

} else {

urls = "http://f10.eastmoney.com/f10_v2/CompanySurvey.aspx?code=sz"+data;

}

htmlContent= getHtmlContent(urls,"utf-8");

yewufanwei = getContent(htmlContent,"

经营范围(.*?)");

bankuai = getContent(htmlContent,"

所属行业(.*?)");

String zhucezibens = getContent(htmlContent,"注册资本(元)

(.*?)");

if(zhucezibens.indexOf("亿")>0){

zhuceziben=Float.parseFloat(zhucezibens.substring(0,zhucezibens.indexOf("亿")))*10000;

}else{

zhuceziben=Float.parseFloat(zhucezibens.substring(0,zhucezibens.indexOf("万")));

}

System.out.println(getContent(htmlContent,"每股发行价(元)

(.*?)"));

faxingjia= Float.parseFloat(getContent(htmlContent,"每股发行价(元)

(.*?)"));

if (data.startsWith("60")) {

urls = "http://f10.eastmoney.com/f10_v2/CoreConception.aspx?code=sh"+data;

} else {

urls = "http://f10.eastmoney.com/f10_v2/CoreConception.aspx?code=sz"+data;

}

htmlContent= getHtmlContent(urls,"utf-8");

gainian= getContent(htmlContent,"

要点一:所属板块 (.*?)

");

/*System.out.println("data:"+data);

System.out.println("stockname:"+stockname);

System.out.println("bankuai:"+bankuai);

System.out.println("yewufanwei:"+yewufanwei);

System.out.println("gainian:"+gainian);;

System.out.println("faxingjia:"+faxingjia);

System.out.println("zhuceziben:"+zhuceziben);

System.out.println("shizhi:"+shizhi);

System.out.println("shiyinglv:"+shiyinglv );

System.out.println("meigushouyi:"+meigushouyi );

System.out.println("yingyeshouru:"+yingyeshouru);

System.out.println("shourutongbi:"+shourutongbi);

System.out.println("liren:"+liren );

System.out.println("lirentongbi:"+lirentongbi);

System.out.println("shijinglv:"+shijinglv);*/

if((codeSqe==null) || (!codeSqe.contains(data))){

try {

String insertsql = "insert into stockINFO(stockcode , stockname, bankuai, yewufanwei,gainian ,faxingjia ,zhuceziben ,shizhi,shiyinglv ,meigushouyi,yingyeshouru ,shourutongbi,liren,lirentongbi,shijinglv)" +

" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

PreparedStatement pstmt = con.prepareStatement(insertsql);

pstmt.setString(1, data);

pstmt.setString(2, stockname);

pstmt.setString(3, bankuai);

pstmt.setString(4, yewufanwei);

pstmt.setString(5, gainian);

pstmt.setFloat(6, faxingjia);

pstmt.setFloat(7, zhuceziben);

pstmt.setFloat(8, shizhi);

pstmt.setFloat(9,shiyinglv);

pstmt.setFloat(10,meigushouyi );

pstmt.setFloat(11,yingyeshouru);

pstmt.setFloat(12,shourutongbi );

pstmt.setFloat(13,liren);

pstmt.setFloat(14,lirentongbi );

pstmt.setFloat(15,shijinglv );

int result = pstmt.executeUpdate();

if(result==1){

System.out.print("insert "+data+" into database ok");

}

pstmt.close();

} catch (SQLException e) {

System.out.println("SQL error"+data);

e.printStackTrace();

}catch (NumberFormatException e){

System.out.println("数安格式错"+data);

e.printStackTrace();

}

catch (StringIndexOutOfBoundsException e){

System.out.println("索引超出值"+data);

e.printStackTrace();

}

}else{

try {

String updatesql = "update stockINFO set stockname=?, bankuai=?, yewufanwei=?,gainian=? ,faxingjia=? ,zhuceziben=? ,shizhi=?,shiyinglv=? ,meigushouyi=?,yingyeshouru=? ,shourutongbi=?,liren=?,lirentongbi=?,shijinglv=? where stockcode=?" ;

PreparedStatement pstmt = con.prepareStatement(updatesql);

pstmt.setString(1, stockname);

pstmt.setString(2, bankuai);

pstmt.setString(3, yewufanwei);

pstmt.setString(4, gainian);

pstmt.setFloat(5, faxingjia);

pstmt.setFloat(6, zhuceziben);

pstmt.setFloat(7, shizhi);

pstmt.setFloat(8,shiyinglv);

pstmt.setFloat(9,meigushouyi );

pstmt.setFloat(10,yingyeshouru);

pstmt.setFloat(11,shourutongbi );

pstmt.setFloat(12,liren);

pstmt.setFloat(13,lirentongbi );

pstmt.setFloat(14,shijinglv );

pstmt.setString(15, data);

int result = pstmt.executeUpdate();

if(result==1){

System.out.print("update "+data+" into database ok");

}

pstmt.close();

} catch (SQLException e) {

System.out.println("SQL error"+data);

e.printStackTrace();

}catch (NumberFormatException e){

System.out.println("数安格式错"+data);

e.printStackTrace();

}

catch (StringIndexOutOfBoundsException e){

System.out.println("索引超出值"+data);

e.printStackTrace();

}

}

}

br.close();

br=null;

} else {

System.out.println("请在/slview/yjz,里面加上股票代码,用逗号分隔");

}

try {

con.close();

con=null;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private Connection connDB(Connection con) {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

} catch (Exception e) {

System.out.println("Can't load dbdriver!-->"

+ e.getMessage());

}

try {

con = DriverManager.getConnection(

"jdbc:oracle:thin:@127.0.0.1:1639:dbnms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值