返回 Skill 列表
extension
分类: 数据与分析无需 API Key

巨潮股票数据

巨潮股票数据。直接调用巨潮资讯网(cninfo.com.cn)接口拉取任意 A 股数据:①定期报告/公告列表(hisAnnouncement/query,token=fulltext);②交流纪要/调研记录(个股页 #research Tab,tabName=relation);③代码→orgId 映射(topSearch/query);④PDF 原文下载。输入一个 6 位股票代码即可,自动解析 orgId 与板块,分页自动翻到底,输出结构化结果(默认文本表格,`--json` 输出机器可读 JSON),可一键下载正文 PDF。触发词:拉年报、拿季度报告、要某股年报、交流纪要、调研纪要、投资者关系活动记录表、公司公告、某股数据。

person作者: user_cb7e172fhubcommunity

巨潮股票数据(cninfo-stock-data)

从巨潮资讯网抓取 A 股个股数据。输入一个 6 位股票代码,即可拿到定期报告、公告列表、交流纪要/调研记录,并可下载 PDF 原文。

核心脚本:scripts/cninfo.py(纯标准库,无需 pip 安装任何包;可选 pymupdf 用于提 PDF 全文)。

数据来源与对应关系

| 需求 | 命令 | 说明 | |---|---|---| | 定期报告(年报/一季报/半年报/三季报) | reports | tabName=fulltext + 定期报告类目 | | 交流纪要 / 调研记录 | research | 个股页 #research Tab,tabName=relation | | 任意公告(按类目/关键词/日期) | query | 通用 fulltext 查询 | | 全市场某日公告切片 | list | 不带 stock,按板块+日期 | | 代码→orgId 映射 | orgid | 内部解析用,也可单独查询 | | 下载 PDF | download--out | 报表/纪要命令加 --out 目录即可 |

工作流程(按顺序)

Step 1 — 确认股票代码

用户给出代码或公司名/简称。若是名称,先用 orgid 命令解析出 6 位代码再继续;若是 6 位代码直接进入 Step 2。

python scripts/cninfo.py orgid 贵州茅台      # 名称不可直接查,需先得到 600519
python scripts/cninfo.py orgid 600519        # 或直接用代码拿 orgId / 元信息

orgid 接受 6 位代码;若传的是公司名,先提示用户提供 6 位代码,或用 orgid 600519 反查名称。

Step 2 — 确定数据需求

问清楚用户要哪类数据(如已有上下文则跳过):

  • 定期报告:哪一年、哪一季(年报/一季报/半年报/三季报)?给 --year + --kind
  • 交流纪要/调研:直接 research
  • 其它公告:指定类目(--category)、关键词(--searchkey)或日期范围(--since/--until)。

不要一次全问;能从上下文推断就用推断值。

Step 3 — 执行采集

cd cninfo-stock-data

# 例1:个股全部定期报告
python scripts/cninfo.py reports 300308

# 例2:2025 年报本体
python scripts/cninfo.py reports 300308 --kind annual --year 2025

# 例3:2025 年一季报
python scripts/cninfo.py reports 300308 --kind q1 --year 2025

# 例4:交流纪要 / 调研记录
python scripts/cninfo.py research 300308

# 例5:指定类目公告(如股东大会),近一年
python scripts/cninfo.py query 300308 --category category_gddh_szsh --since 2025-01-01 --until 2026-01-01

# 例6:下载正文 PDF 到本地目录
python scripts/cninfo.py research 300308 --out ./out
python scripts/cninfo.py reports 300308 --kind annual --year 2025 --out ./out

默认输出为可读文本;--json 输出结构化 JSON(适合给下游或做表格)。每条记录含: ann_id / sec_code / sec_name / ts_code / org_id / ann_date / ann_datetime / title / pdf_url / adjunct_url / ann_type

Step 4 — 汇总交付

  • 若用户要"清单",按时间倒序整理标题(定期报告可留 pdf_url 以便下载)。
  • 若在迭代分析,优先用 --json 拿结构化数据。
  • 重要:只在拿到真实返回后整理;不要臆造字段或数据。

关键约束(agent 须知)

  • orgId:按股票精确查询必须带 stock=<6位>,<orgId>,脚本已自动经 topSearch 解析。也可作 Python 库用:在 scripts/ 目录下 import cninfo,调用 cninfo.get_reports(code, ...) / cninfo.get_research(code, ...)
  • 交流纪要仅深市有数据:research 对沪市(6 开头)/北交所股票返回空列表,这是 cninfo 调研 Tab 的限制(前端沪市无调研 Tab),不是失败。遇到空结果如实说明。
  • 报告年份在标题里:--year 按标题年份过滤(2025 年报 2026 年披露)。
  • pageSize 硬限 30:脚本已自动翻页到 hasMore=false
  • 重复记录:cninfo 可能对同一 PDF 重复索引,脚本已按 pdf_url 去重。
  • 不要用 searchkey 做精确代码查询:它是模糊匹配。
  • PDF 可能 404 / 扫描件:下载失败会重试再报错;扫描件(律所/会计师审计意见)提不出字,定期报告本体几乎不会。

输出与失败处理

  • 脚本返回非 0 表示异常;-- json 的 stdout 干净可解析,错误走 stderr。
  • 采集失败先查网络与类目是否有效,再对照 reference.md 的参数说明。
  • 大范围批量时留意频次(参考 reference.md 第 5 节)。

维护

  • 类目变动以 cninfo /new/data/list-search.json 为准,更新 scripts/cninfo.py 中类目表即可。
  • 接口字段/参数细节见 reference.md,改动后跑 python scripts/verify.py --live 冒烟。