一键导入
cninfo
巨潮资讯网(cninfo.com.cn)A 股法定披露公告数据契约 — 年报/季报/中报/三季报/临时公告 PDF + PyMuPDF 全文 Markdown。真实抓取逻辑由独立开源工具 use_cninfo 实现,本仓库通过 data_sources/cninfo.py 适配 CLI 输出。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
巨潮资讯网(cninfo.com.cn)A 股法定披露公告数据契约 — 年报/季报/中报/三季报/临时公告 PDF + PyMuPDF 全文 Markdown。真实抓取逻辑由独立开源工具 use_cninfo 实现,本仓库通过 data_sources/cninfo.py 适配 CLI 输出。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | cninfo |
| description | 巨潮资讯网(cninfo.com.cn)A 股法定披露公告数据契约 — 年报/季报/中报/三季报/临时公告 PDF + PyMuPDF 全文 Markdown。真实抓取逻辑由独立开源工具 use_cninfo 实现,本仓库通过 data_sources/cninfo.py 适配 CLI 输出。 |
| owner_group | 开发3组(数据) |
| domain | data |
| status | draft |
所属小组:开发3组(数据)
适用任务:
边界说明:
use_cninfodata_sources/cninfo.py(CninfoDataSource),内部 subprocess 调 cninfo CLI 并解析 JSONpageSize 服务端硬限 30,长时间窗会触发翻页,建议每次窗口 ≤ 1 个月extracted_pages=0 时 md 正文为空,本 Skill 不内置 OCR(stock_code, ann_date, title) 去重~/.cache/cninfo/,可被 $CNINFO_CACHE_DIR 覆盖),秒级返回不发网络真实数据获取逻辑位于:
data_sources/cninfo.py # 薄 shim,subprocess 调 use_cninfo CLI
推荐调用方式:
from data_sources import CninfoDataSource
source = CninfoDataSource()
# 拿茅台 2024 年报本体
r = source.get_periodic_report(stock_code="600519", year=2024, kind="annual")
# 拿茅台 2025-04 全月公告(仅列表)
r = source.get_announcements(stock_code="600519", since="2025-04-01", until="2025-04-30")
# 拿茅台 2025-04 全月公告并下载 + 解析全文
r = source.get_announcements(
stock_code="600519", since="2025-04-01", until="2025-04-30", download=True,
)
前置依赖(用户在 Agent 运行环境装好):
# 必装
git clone https://github.com/rollysys/use_cninfo.git
cd use_cninfo && pip install -e .
# 可选(启用 search 标签过滤,本契约暂未暴露,后续扩展)
git clone https://github.com/rollysys/announcement_filter.git
cd announcement_filter && pip install -e .
cninfo 命令需要在 PATH 中(pip install -e . 自动配置)。CninfoDataSource 初始化时若未找到 CLI 会输出 warning,所有方法返回 status: error 并在 error 字段提示安装命令。
get_periodic_report(stock_code, year, kind, force=False)| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
| stock_code | string | 6 位股票代码(无后缀) | "600519" |
| year | int | 报告所属财年 | 2024 |
| kind | string | 报告类型:annual / q1 / h1 / q3 | "annual" |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| force | bool | False | 忽略本地缓存重新下载并重新解析 |
get_announcements(stock_code, since, until, download=False)| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
| stock_code | string | 6 位股票代码 | "600519" |
| since | string | 起始日期 YYYY-MM-DD | "2025-04-01" |
| until | string | 截止日期 YYYY-MM-DD | "2025-04-30" |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| download | bool | False | True 时下载并 PyMuPDF 解析每份 PDF |
get_periodic_report 成功{
"status": "success",
"stock_code": "600519",
"fetch_time": "2026-05-04T17:30:00",
"report": {
"ann_id": "1222993920",
"sec_code": "600519",
"ts_code": "600519.SH",
"ann_date": "20250403",
"title": "贵州茅台2024年年度报告",
"category": "01010503||010113||010301",
"pdf_url": "http://static.cninfo.com.cn/finalpage/2025-04-03/1222993920.PDF",
"pdf_path": "/Users/x/.cache/cninfo/pdf/600519.SH/20250403__1222993920.pdf",
"md_path": "/Users/x/.cache/cninfo/md/600519.SH/20250403__1222993920.md",
"meta_path": "/Users/x/.cache/cninfo/meta/1222993920.json",
"total_pages": 143,
"extracted_pages": 143,
"text_chars": 176373,
"cache_hit": false
}
}
md_path 指向的文件含 YAML frontmatter(ann_id / ts_code / sec_code / sec_name / ann_date / title / category / source / total_pages / extracted_pages / text_chars)+ PyMuPDF 提取的全文 Markdown,直接可读。
get_announcements 成功{
"status": "success",
"stock_code": "600519",
"since": "2025-04-01",
"until": "2025-04-30",
"fetch_time": "2026-05-04T17:30:00",
"total": 18,
"announcements": [
{
"ann_id": "1222993920",
"sec_code": "600519",
"ann_date": "20250403",
"title": "贵州茅台2024年年度报告",
"adjunct_size_kb": 3542
}
]
}
download=True 时每条 announcement 额外含 cache_hit / md_path / pages / text_chars 字段。
{
"status": "error",
"stock_code": "600519",
"error": "..."
}
常见 error:
`cninfo` 命令未安装。装一下: ...cninfo CLI 超时 (120s)OrgIdNotFound: orgId not found for sec_code=XXX(代码错 / 已退市 / cninfo 接口变)no annual report body found for ... year=YYYY(报告期窗口外 / 只有摘要无本体)法定属性:cninfo 是中国证监会指定的 A 股法定信息披露平台,所有上市公司必须在此披露,无遗漏风险。
频次限制:
pageSize 服务端硬限 30,长时间窗会自动翻页(本工具内部已处理)docs/gotchas.md缓存语义:
~/.cache/cninfo/),pdf + md + meta 三件齐全才算命中force=True 跳过缓存重新下载cninfo cache prune --older-than 365d 可手动清理(本契约未暴露,直接命令行)已知陷阱(继承自上游):
extracted_pages=0,md 正文为空但 PDF 已落盘完整陷阱清单见 use_cninfo/docs/gotchas.md。
from data_sources import CninfoDataSource
source = CninfoDataSource()
# 场景 1:为财务分析 Agent 拿茅台 2024 年报全文
r = source.get_periodic_report("600519", 2024, "annual")
if r["status"] == "success":
md_path = r["report"]["md_path"]
with open(md_path, encoding="utf-8") as f:
annual_report_text = f.read()
# 喂给下游分析 Skill ...
# 场景 2:为事件追踪 Agent 拿最近 30 天的所有公告标题
from datetime import date, timedelta
today = date.today()
r = source.get_announcements(
"600519",
since=(today - timedelta(days=30)).isoformat(),
until=today.isoformat(),
)
titles = [a["title"] for a in r["announcements"]]
# 场景 3:批量预热缓存(下载 + 解析,后续访问秒级)
r = source.get_announcements(
"600519", since="2025-04-01", until="2025-04-30", download=True,
)
| 已有 | 数据 | cninfo 与之关系 |
|---|---|---|
EastMoneyDataSource | 三大表结构化数据(资产负债/利润/现金流) | 互补。东方财富给数字,cninfo 给原文。年报正文里有"管理层讨论与分析 / 关键审计事项 / 重大合同"等结构化字段无法替代的内容 |
EastMoneyGubaDataSource | 散户帖子(舆情) | 互补。cninfo 是机构口径(法定披露),股吧是散户口径(情绪) |
cninfo 的典型消费方:
财报分析 Skill v2。用现金流量表和资产负债表交叉验证利润表,按七步链「利润质量/现金流匹配/需求真实性/资本开支/债务与利率敏感性/扩张质量/行业特殊口径」判断公司真实经营质量;输出符合 AI_Renaissance 标准 Signal 的 JSON。触发:财报分析、财务报表、利润质量、现金流验证、合同负债、资本开支、扩张风险、Signal。
产业链中观分析框架。三维度独立展示:产业链景气度、产业链拐点、产业链生命周期。 基于项目数据层注入的财报数据与行业数据,输出可溯源的结构化分析。 System B 仅做个股类型判定(成长/周期/价值/主题/混合),不写交易计划。 触发词:景气度、/景气度。
基于 AkShare 的资金流全景数据契约,一次返回个股基础信息、个股主力资金、相关行业/概念板块资金、大盘主力资金与北向资金概览;真实执行逻辑位于 data_sources/akshare.py。
开发2组仲裁方法论Skill。基于桥水经济机器模型的场景化专家权重体系,支持三种模式:(1)场景设计与权重配置迭代;(2)7专家Signal仲裁执行(含场景自动选择、评分制匹配、共识/分歧标注、贡献追踪);(3)权重回测校准。当用户讨论仲裁权重、场景选择逻辑、match_signals规则、仓位公式设计、权重校准或标准化推理链时调用。
用"节点叙事"的方式分析一家公司的发展路径——把公司的成长拆解成一系列关键决策节点(创立、转型、并购、融资、控制权变更、产品突破等),逐个节点深挖其交易结构、估值逻辑、对手方动机、买方意图、时代背景与协同效应,最终串联成一条清晰的版图扩张路径,并推演未来格局与风险。任何时候用户说"讲讲 XX 公司""分析一下 XX 公司""研究 XX 公司""XX 公司是怎么发展起来的""XX 公司的并购史""XX 公司的发展历程"——都要用这个 skill。即使用户没明说"按节点分析"或"做深度报告",只要他们想了解一家公司是如何一步步走到今天的,就用这个 skill。这个 skill 必须配合 web_search 主动联网搜索公司的真实历史信息,绝不允许凭记忆杜撰节点、日期、金额或交易细节。
对个股、指数、ETF 或 OHLCV CSV 运行专家二组“四模型传统技术指标融合”分析。使用本工程的 fusion_traditional_models Python 程序只生成可复核 JSON 结果,再由大模型读取 JSON 并按中文模板生成融合结果解读报告。适用于用户要求测试股票、输出融合信号、解释四模型结果、生成技术面融合结果解读报告的场景。