# 股票数据采集 **Repository Path**: e-wait/stock-data-collection ## Basic Information - **Project Name**: 股票数据采集 - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票数据采集系统 一个统一的股票数据采集系统,支持从多个平台(聚宽、雪球等)采集股票数据,并提供统一的HTTP API接口。 ## 项目特性 - 🎯 **统一API接口**:对外提供统一的RESTful API - 🔌 **多数据源支持**:支持聚宽、雪球等多个数据源 - 📦 **模块化设计**:按功能模块划分,易于扩展维护 - 🗄️ **数据持久化**:支持MySQL数据库存储 - ⚙️ **配置管理**:集中配置管理,支持环境隔离 - 🧪 **完善测试**:每个模块提供独立的测试脚本 ## 项目结构 ``` stock-data-collection/ ├── server.py # 统一服务启动入口 ├── config.ini # 配置文件 ├── config_manager.py # 配置管理器 ├── requirements.txt # 依赖列表 ├── README.md # 项目说明 ├── API_DOC.md # 接口文档 ├── doc/ # 文档目录 ├── sql/ # 数据库脚本目录 ├── company/ # 上市公司信息模块 │ ├── company_api.py # HTTP API接口层 │ ├── company_service.py # 业务服务层 │ ├── company_dao.py # 数据访问层 │ └── test_company.py # 功能测试 ├── jq/ # 聚宽第三方接口模块 │ └── jq_stk_company_info.py # STK_COMPANY_INFO接口封装 └── snowball/ # 雪球第三方接口模块 └── ... # 雪球接口封装 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置文件 复制配置模板并修改: ```bash cp config.ini.example config.ini ``` 编辑 `config.ini`,配置数据库和API信息: ```ini [jq] username = your_jq_username password = your_jq_password api_rate_limit = 1 [database] db_type = mysql db_host = localhost db_port = 3306 db_name = stock db_user = your_db_user db_password = your_db_password ``` ### 3. 启动服务 ```bash # 方式1:启动统一服务入口(推荐) python server.py # 方式2:启动指定模块服务 python company/company_api.py ``` 服务默认运行在 `http://localhost:5000` ### 4. 测试功能 ```bash # 测试上市公司模块 python company/test_company.py # 测试雪球行情模块 python snowball/test_quota_data.py ``` ## 功能模块 ### 1. 上市公司信息模块 (company) 提供上市公司基本信息的获取和同步功能。 **主要功能:** - 获取单个公司信息 - 同步公司信息到数据库 - 批量同步所有公司 - 查询公司统计信息 **API接口:** - `GET /api/company/get` - 获取公司信息 - `POST /api/company/sync` - 同步所有公司 - `POST /api/company/sync_one` - 同步单个公司 - `GET /api/company/statistics` - 统计信息 **数据源支持:** - 聚宽(jq)- STK_COMPANY_INFO表 ### 2. 每日行情数据模块 (quota_daily) > TODO: 待开发 ## 第三方数据源 ### 1. 聚宽 (jq) 聚宽JoinQuant提供的金融数据接口。 **接口封装:** - `jq_stk_company_info.py` - 公司信息接口 **配置说明:** ```ini [jq] username = your_username password = your_password api_rate_limit = 1 # API调用间隔(秒),0表示不限制 ``` ### 2. 雪球 (snowball) 雪球Xueqiu提供的股票数据接口。 **接口封装:** - `snowball_client.py` - 雪球API客户端 - 行情数据接口封装 **配置说明:** ```ini [snowball] token = xq_a_token=xxx;u=yyy api_rate_limit = 1 ``` ## API文档 详细的API接口文档请查看 [API_DOC.md](API_DOC.md) ## 开发指南 ### 添加新功能模块 1. 在根目录创建模块目录,如 `module_name/` 2. 创建必要文件: - `module_name_api.py` - HTTP API接口层 - `module_name_service.py` - 业务服务层 - `module_name_dao.py` - 数据访问层 - `test_module_name.py` - 功能测试 3. 在 `server.py` 中注册模块路由 ### 添加新数据源 1. 在根目录创建数据源目录,如 `platform_name/` 2. 创建接口封装文件:`platform_name_interface_code.py` 3. 在对应功能模块的service层调用 ## 注意事项 1. **配置文件安全**:`config.ini` 包含敏感信息,已在 `.gitignore` 中忽略,请勿提交到代码仓库 2. **API频率限制**:注意各平台的API调用频率限制,避免触发限流 3. **数据库规范**:只处理 `stock_` 开头的表,不要操作其他表 4. **错误处理**:所有API接口都应有完善的异常处理 ## 许可证 本项目仅供学习和研究使用。 ## 联系方式 如有问题或建议,请提交Issue。