本文为原创博客,仅供技术学习使用。未经允许,禁止将其复制下来上传到百度文库等平台。如有转载请注明本文博客的地址(链接)。
源码或者jar包如有需要请联系:2428607276@qq.com
- 要抓取的数据
- 抓包
- 框架
- model
- 建立数据表
- 主方法
- util
- parse
- db
- job和jobmain
要抓取的数据
这个项目要抓取的是东方财富网的板块数据。
链接为http://quote.eastmoney.com/center/BKList.html#trade_0_0?sortRule=0
抓包
抓包具体请看我之前的博客。
链接为http://blog.csdn.net/qq_22499377/article/details/78114734
框架
本文使用的框架,如下图所示:
db:主要放的是数据库操作文件,包含MyDataSource和MYSQLControl。
model:用来封装对象,将要操作的对象的属性封装起来。
parse:这里面存放的是针对util获取的文件,进行解析,一般采用Jsoup解析。
main:程序起点,用来获取数据,执行数据库语句以及存放数据。
job:用来执行的job任务。
jobmain:控制器,即设定执行一次job的时间。股票数据每天下午3点钟收盘,即设置为3点钟以后的某个时间点开始爬行相关股票数据。
model
model用来封装我要爬的数据,如当天的日期,板块的id,板块的名称,板块价格等等。如下面程序:
package model;
//创建对象及我们爬取的数据内容包含以下字段
public class ExtMarketPlateModel {
private String date;
private String plate_rank;
private String plate_id;
private String plate_name;
private float plate_price;
private float plate_change;
private float plate_range;
private String plate_market_value;
private float plate_turnover_rate;
private String craw_time;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getPlate_rank() {
return plate_rank;
}
public void setPlate_rank(String plate_rank) {
this.plate_rank = plate_rank;
}
public String getPlate_id() {
return plate_id;
}
public void setPlate_id(String plate_id) {
this.plate_id = plate_id;
}
public String getPlate_name() {
return plate_name;
}
public void setPlate_name(String plate_name) {
this.plate_name = plate_name;
}
public float getPlate_price() {
return plate_price;
}
public void setPlate_price(float plate_price) {
this.plate_price = plate_price;
}
public float getPlate_change() {
return plate_change;
}
public void setPlate_change(float plate_change) {
this.plate_change = plate_change;
}
public float getPlate_range() {
return plate_range;
}
public void setPlate_range(float plate_range) {
this.plate_range = plate_range;
}
public String getPlate_market_value() {
return plate_market_value;
}
public void setPlate_market_value(String plate_market_value) {
this.plate_market_value = plate_market_value;
}
public float getPlate_turnover_rate() {
return plate_turnover_rate;
}
public void setPlate_turnover_rate(float plate_turnover_rate) {
this.plate_turnover_rate = plate_turnover_rate;
}
public String getCraw_time() {
return craw_time;
}
public void setCraw_time(String craw_time) {
this.craw_time = craw_time;
}
}
建立数据表
在写程序之前,先根据model的属性来建立数据表。建表的时候,一定要记得注明每一个属性的真实含义,以便以后的人可以轻松交接。
CREATE TABLE `ext_market_plate` (
`date` date NOT NULL COMMENT '当天日期',
`plate_rank` char(20) NOT NULL COMMENT '板块排名',
`plate_id` char(20) NOT NULL COMMENT '板块代码',
`plate_name` char(50) DEFAULT NULL COMMENT '板块名称',
`plate_price` float(10,2) DEFAULT NULL COMMENT '板块最新价格',
`plate_change` float(10,2) DEFAULT NULL COMMENT '涨跌额',
`plate_range` float(10,4) DEFAULT NULL COMMENT '涨跌幅度',
`plate_market_value` char(50) DEFAULT