Skill: shihugh5-lab/financial-data-gateway (version 1.0.1)

--- name: financial-analysis-pipeline description: LibraQuant 财务分析数据采集与提取流水线，包含两个核心技能：从巨潮资讯下载A股年报PDF，以及从PDF中提取结构化财务数据。这是财务自动化分析的完整数据入口。Use when: (1) 需要自动下载A股上市公司年报，(2) 需要从PDF中提取财务报表数据，(3) 构建财务数据库，(4) 进行批量财务分析前的数据准备。 version: 1.0.0 author: Shi Changlong时昌隆 copyright: © 2026 LibraQuant. All rights reserved. license: MIT --- # 财务分析数据采集流水线 LibraQuant 财务分析数据采集流水线包含 2 个核心技能，提供从数据源获取到结构化提取的完整解决方案。 --- ## 技能总览 | 类别 | 数量 | 功能范围 | |:---|:---:|:---| | **数据采集** | 1 | 从巨潮资讯网下载A股年报PDF | | **数据提取** | 1 | 从PDF中提取结构化财务数据 | --- ## 一、数据采集 (1 Skill) ### 巨潮资讯年报下载 | Skill | 用途 | 数据来源 | |:---|:---|:---| | `cninfo-report-download` | 从巨潮资讯网下载A股年报PDF | cninfo.com.cn | **功能说明**： - 支持按公司名称和年份精确搜索年报 - 自动识别上交所/深交所 - 智能筛选正确版本（排除摘要、更正、英文版） - 自动清理文件名中的HTML标签和非法字符 --- ## 二、数据提取 (1 Skill) ### 财务报表数据提取 | Skill | 用途 | 输出格式 | |:---|:---|:---| | `financial-statement-extraction` | 从年报PDF提取结构化财务数据 | JSON | **功能说明**： - AI智能定位财务报表页码（双层定位策略） - 三层防线过滤母公司数据（页级/混合页/行级） - 自动识别并统一单位（元/千元/万元/亿元） - 内置勾稽关系校验（资产负债平衡、净利率合理性） - 支持资产负债表、利润表、现金流量表提取 --- ## 三、使用流程 ### 标准使用流程（推荐） ``` ┌─────────────────────────┐ │ cninfo-report-download │ ← 输入：公司名称 + 年份 │ 巨潮资讯年报下载 │ 输出：PDF文件路径 └───────────┬─────────────┘ │ ▼ ┌─────────────────────────┐ │ financial-statement- │ ← 输入：PDF文件路径 │ extraction │ 输出：JSON结构化数据 │ 财务报表数据提取 │ └─────────────────────────┘ ``` ### 使用示例 **示例1：单公司年报分析** 1. `cninfo-report-download` — 下载"海天味业"2024年年报 2. `financial-statement-extraction` — 提取财务数据 3. 下游分析技能（如DCF估值、财务比率分析） **示例2：批量数据收集** 1. 循环调用 `cninfo-report-download` — 下载多家公司年报 2. 循环调用 `financial-statement-extraction` — 批量提取数据 3. 构建财务数据库或进行横向对比分析 --- ## 四、输入输出规范 ### cninfo-report-download **输入**： | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | company_name | str | ✅ | 公司简称（如"海天味业"） | | year | int | ✅ | 年报年份（如2024） | | output_dir | str | 可选 | 下载目录，默认`workspace/reports/` | **输出**： - 成功：PDF文件路径（str） - 失败：None ### financial-statement-extraction **输入**： | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | pdf_path | str | ✅ | 年报PDF文件路径 | | output_dir | str | 可选 | 输出目录 | | extract_notes | bool | 可选 | 是否提取附注（v2.1+） | **输出**：JSON格式结构化数据 ```json { "meta": { "company": "公司名", "stock_code": "代码", ... }, "balance_sheet": { "资产总计": 82.37, ... }, "income_statement": { "营业收入": 55.19, ... }, "cashflow_statement": { "经营活动现金流净额": 10.88, ... }, "validation": { "balance_check": {...}, ... } } ``` --- ## 五、数据质量保障 ### 校验机制 | 校验项 | 规则 | 处理方式 | |:---|:---|:---| | 资产负债表平衡 | 资产 = 负债 + 权益 | 差异>1%触发降级重提取 | | 净利率合理性 | 净利率 > 100% 可能混入母公司数据 | 自动触发降级重提取 | | 数据完整性 | 检查关键科目是否存在 | 缺失时警告 | | 母公司数据过滤 | 三层防线确保只提取合并报表 | 页级/混合页/行级过滤 | ### 已验证的数据源 | 公司 | 代码 | 交易所 | 年份 | 状态 | |------|------|--------|------|------| | 海天味业 | 603288 | SSE | 2024 | ✅ | | 千禾味业 | 603027 | SSE | 2024 | ✅ | | 中炬高新 | 600872 | SSE | 2024 | ✅ | | 甘源食品 | 002991 | SZSE | 2024 | ✅ | --- ## 六、已知限制 | 限制 | 说明 | 解决方案 | |:---|:---|:---| | 仅支持A股 | 不支持港股、美股 | v2.0规划多市场 | | 仅支持年报 | 半年报/季报需修改参数 | v1.2规划支持 | | 扫描件不支持 | 需要可复制文本PDF | v3.0规划OCR | | 英文财报不支持 | 科目映射表仅覆盖中文 | v2.2规划英文 | | 附注不提取 | 当前版本仅提取主表 | v2.1规划附注 | --- ## 七、迭代路线 ``` v1.1（当前） ↓ v1.2（支持半年报/季报） ↓ v1.3（本地缓存+断点续传） ↓ v2.0（批量下载+多线程+港股支持） ↓ v2.1（附注提取+上期数据） ↓ v2.2（英文财报支持） ↓ v3.0（OCR扫描件支持） ``` --- ## 八、工具文件 - `src/tools/download_cninfo.py` — 年报下载主逻辑 - `src/tools/extract_pdf_tables.py` — 财务数据提取主逻辑 - `src/tools/ai_page_locator.py` — AI页码定位 - `src/data/company_codes.py` — 公司代码映射表 --- ## 九、使用建议 ### 最佳实践 1. **先验证单公司** — 首次使用先用1-2家公司验证提取质量 2. **检查validation字段** — 务必确认勾稽校验通过 3. **处理异常情况** — 扫描件、加密PDF会报错，需人工处理 4. **批量下载时间** — 建议添加延迟，避免触发巨潮限流 ### 常见问题 - **Q: 为什么提取的数据和报表对不上？** A: 可能是母公司数据混入，检查validation字段，必要时重试。 - **Q: 下载失败怎么办？** A: 检查公司名称是否正确，或尝试用股票代码搜索。 - **Q: 支持哪些行业？** A: 通用制造业支持最好，银行/保险/证券等特殊行业可能需额外处理。 --- *LibraQuant Financial Analysis Pipeline* *数据采集到结构化提取的完整解决方案*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)