- Remove .idea/ directory from Git tracking - Remove .claude/ directory from Git tracking - Update .gitignore to exclude IDE and tool files - Keep local files intact but prevent future commits 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| src | ||
| .gitignore | ||
| CLAUDE.md | ||
| pom.xml | ||
| README.md | ||
股票数据抓取项目
基于Tushare Pro接口的股票数据定时抓取系统,使用Spring Boot + MyBatis + MySQL技术栈。
功能特性
- 🔄 定时抓取: 支持定时获取股票基本信息和日线行情数据
- 📊 数据存储: 使用MySQL存储股票数据,支持批量插入和去重
- ⚡ 高性能: 使用HikariCP连接池和MyBatis优化数据库操作
- 🔧 灵活配置: 支持通过配置文件自定义抓取策略和数据库连接
- 📈 多时间周期: 支持日线、周线、月线数据抓取
- 🗃️ 数据清理: 自动清理历史数据,控制存储空间
技术栈
- Java 8+: 主要编程语言
- Spring Boot 2.7: 应用框架
- MyBatis: ORM框架
- MySQL: 数据存储
- Tushare Pro SDK: 股票数据接口
- Quartz: 定时任务调度
- HikariCP: 数据库连接池
快速开始
1. 环境准备
- JDK 8+
- Maven 3.6+
- MySQL 5.7+
2. 数据库初始化
执行SQL脚本创建数据库和表:
source src/main/resources/sql/init.sql
3. 配置文件修改
编辑 src/main/resources/application.properties:
# Tushare配置
tushare.token=your_actual_tushare_token
# 数据库配置
db.url=jdbc:mysql://localhost:3306/stock_data?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
db.username=your_username
db.password=your_password
4. 编译和运行
# 编译项目
mvn clean compile
# 打包项目
mvn clean package
# 运行应用程序
java -jar target/go-stock-1.0-SNAPSHOT.jar
使用说明
命令行参数
# 启动应用程序并运行定时任务
java -jar go-stock.jar
# 手动获取股票基本信息
java -jar go-stock.jar fetch-basic
# 手动获取股票日线行情数据
java -jar go-stock.jar fetch-daily
# 清理历史数据,保留60天
java -jar go-stock.jar clean-data 60
# 显示帮助信息
java -jar go-stock.jar help
定时任务配置
在 application.properties 中配置定时任务:
# 启用定时任务
task.enabled=true
# 股票基本信息获取时间(每天凌晨1点)
task.cron.stock.basic=0 0 1 * * ?
# 股票日线数据获取时间(每个交易日下午3点30分)
task.cron.stock.daily=0 30 15 * * ?
项目结构
src/main/java/com/sjz/
├── App.java # 主程序入口
├── config/ # 配置类
│ ├── DatabaseConfig.java # 数据库配置
│ └── TushareConfig.java # Tushare配置
├── mapper/ # 数据访问层
│ ├── StockBasicMapper.java
│ └── StockDailyMapper.java
├── model/ # 数据模型
│ ├── StockBasic.java
│ └── StockDaily.java
├── service/ # 业务逻辑层
│ ├── StockBasicService.java
│ └── StockDailyService.java
├── task/ # 定时任务
│ └── StockDataScheduler.java
└── util/ # 工具类
├── ConfigUtil.java
└── DateUtil.java
src/main/resources/
├── application.properties # 配置文件
├── mybatis-config.xml # MyBatis配置
└── sql/init.sql # 数据库初始化脚本
API限制说明
Tushare Pro接口有以下限制:
- 每分钟请求次数限制:根据用户等级不同
- 每次返回记录数限制:通常5000条
- 建议在请求间添加适当延时,避免触发限制
监控和日志
- 使用SLF4J + Logback记录运行日志
- 数据库操作记录详细日志
- 定时任务执行状态监控
- 错误信息记录和报警
注意事项
- Tushare Token: 需要在Tushare官网注册并获取有效的API Token
- 交易日: 系统会自动判断交易日,非交易日不会执行数据抓取
- 数据去重: 使用唯一键约束确保数据不重复
- 数据备份: 建议定期备份数据库
- 监控告警: 建议配置监控告警,及时发现问题
扩展功能
- 添加更多数据源
- 实现数据分析和统计功能
- 添加Web管理界面
- 支持更多时间周期数据
- 添加邮件通知功能
许可证
本项目仅供学习和研究使用,请遵守相关API使用条款。