一、案例背景与采集目标
公司研究的第一步,是看它自己说了什么。上市公司依法要定期披露公告与财报,这些文件公开可查,是最权威的一手信息。
示范站点选巨潮资讯网(cninfo.com.cn),它由中国证监会指定、是上市公司信息披露的官方平台,入口地址 http://www.cninfo.com.cn/。在检索框里输入股票代码或公司简称,就能看到该公司的一串公告:标题、类型、披露日期,每条公告通常附有一份 PDF。本案例做三件事:按公司抓公告列表(标题、类型、日期、附件链接),把附件 PDF 下载并归档命名,再从财报里抽取几个关键指标(营收、净利润、同比增速)。
1.1 这个案例要拿到什么
- 某公司近一段时间的公告列表:股票代码、公司简称、标题、公告类型、披露日期、附件链接;
- 把定期报告(年报、季报、半年报)的 PDF 附件下载并按规范命名归档;
- 从财报里抽取关键指标:营业收入、净利润、营收同比、净利同比;
- 形成一份「公司公告与财报要点」的台账表。
1.2 难点与要诀
| 难点 | 表现 | 要诀 |
|---|---|---|
| 公告类型五花八门 | 「年度报告」「业绩预告」「股权变动」…… | 先定一份类型清单,归类时按清单匹配 |
| 附件是 PDF | 正文只有标题,关键数据在 PDF 里 | 下载归档,命名带上公司与日期 |
| 财报指标藏在长文里 | 几百页的 PDF,数字散落各处 | 明确要哪几个指标,让 AI 定位后抽取 |
| 口径必须权威 | 不同来源数字可能不一致 | 以官方披露的原文为准,标注页码或章节 |
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 巨潮资讯网 · 公告检索 http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice 证监会指定信息披露平台,公告列表结构规整,附件为 PDF |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★★☆ 中 |
| 合规提示 | 公告属法定公开披露信息,可采集;财报数字引用须以官方原文为准,报告中要注明「如与官方披露不一致,以官方为准」。 |
二、数据源与字段设计
数据源:巨潮资讯网公告检索页,入口地址 http://www.cninfo.com.cn/。它按公司列出公告列表,每条公告通常带一份 PDF 附件;公告标题里往往自带「半年度报告」「业绩预告」这类类型关键词,正是我们做归类的依据。
2.1 站点信息
| 项目 | 内容 |
|---|---|
| 站点全称 | 巨潮资讯网(cninfo.com.cn),中国证监会指定的信息披露平台 |
| 示范网址 | http://www.cninfo.com.cn/ |
| 页面形态 | 公告检索页,按公司代码/简称检索,返回公告列表(标题、类型、日期、附件) |
| 检索方式 | 输入股票代码或公司简称,可按日期区间筛选 |
| 规模说明 | 覆盖沪深两市全部上市公司;单家公司近三年公告通常数百条 |
| 访问约束 | 公开信息,无需登录;PDF 附件体积较大,批量下载务必控制频率 |
2.2 延伸站点(官方渠道,可作对照)
| 站点 | 网址 | 教学用途 |
|---|---|---|
| 上海证券交易所 披露 | https://www.sse.com.cn/disclosure/listedinfo/announcement/ | 沪市官方渠道 |
| 深圳证券交易所 披露 | https://www.szse.cn/disclosure/listed/notice/ | 深市官方渠道 |
| 东方财富 数据中心 | https://data.eastmoney.com/notices/ | 聚合较全,可用于交叉参考 |
2.3 完整字段表(公告 + 财报要点,共 12 个字段)
下表「示例值」一列是演示字段形态用的虚构示例,不是真实公司的真实数字,请勿据此判断任何一家上市公司的业绩。
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
股票代码 | 上市公司代码 | 600888 | 六位,按文本存,保留前导零 |
公司简称 | 公司简称 | 新疆众和 | 以官方简称为准 |
公告标题 | 公告名称原文 | 2026 年半年度报告 | 不截断、不改写 |
公告类型 | 归类结果 | 定期报告 | 见下方类型清单 |
公告日期 | 披露日期 | 2026-08-28 | 统一成 YYYY-MM-DD |
附件链接 | PDF 地址 | http://static.cninfo.com.cn/…/report.pdf | 完整网址,可下载 |
附件文件 | 下载后的本地文件名 | 600888_2026半年报_20260828.pdf | 规范命名,见 5.2 |
报告期 | 财报所属期间 | 2026 年半年度 | 必须写清,来自哪份报告 |
营业收入 | 当期营业收入 | 156.80 亿元 | 保留单位;单位陷阱高发 |
净利润 | 归母净利润 | 18.42 亿元 | 注意是否归母口径、是否扣非 |
营收同比 | 营业收入同比增长率 | 12.35 | 单位 %,只写数字 |
净利同比 | 净利润同比增长率 | 8.71 | 单位 %,注意「由负转正」这类表述 |
2.4 公告类型清单
| 大类 | 包含 | 优先级 |
|---|---|---|
| 定期报告 | 年报、半年报、季报 | 高,含关键财务数据 |
| 业绩类 | 业绩预告、业绩快报 | 高,常先于定期报告 |
| 权益变动 | 股权变动、股东增减持 | 中 |
| 其他 | 董事会决议、股东大会通知等 | 低 |
AI 助手小贴士|几百页的 PDF,直接「全部读一遍」效率很低。让 AI 先定位到「主要会计数据」那一节,再从那里抽指标。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请在财报 PDF 里先找到「主要会计数据和财务指标」这一节,把表里的营业收入、净利润和同比增速读给我。
课程思政|诚信与职业操守 · 一手原文,胜过千言转述
关于一家公司的说法满天飞,最靠得住的还是它自己披露的公告原文。养成「回到一手材料」的习惯,不轻信二手解读,是研究者的基本操守——既不被人带偏,也不去带偏别人。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 打开公告检索页,进详情页找 PDF 附件 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice,确认检索条件怎么填(公司代码、公告类型、日期区间)。 - 小样试采(WorkBuddy):先取一家公司 2026 年以来的公告列表。
- 核对与清洗:① 定期报告的 PDF 有没有下载成功;② 营收、净利等指标有没有标出在 PDF 的第几页;③ 有没有把「同比」当成绝对值填进去。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice(巨潮资讯网 · 公告检索),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。- 新建对话,粘贴提示词(见下一节),填上公司代码与巨潮入口网址。
- 先抓列表。说「先取这家公司 2026 年以来的公告列表」,确认标题、类型、日期、附件链接齐全。
- 归类。说「请按我给的公告类型清单给每条公告归类」。
- 下载附件。说「把定期报告的 PDF 下载下来,按规范命名」。
- 抽取指标。说「从半年报里抽取营业收入、净利润、营收同比、净利同比」。
- 核对页码。说「标出每个指标在 PDF 的哪一页,方便我复核」。
- 导出台账。说「导出为
announce_600888_20261009.xlsx」。
四、提示词模板与追问技巧
下面这段可以直接复制。三个任务分开,真实网址写全,字段逐条编号。
请帮我完成一个上市公司公告与财报要点采集任务。
【数据来源】巨潮资讯网公告检索页,网址:http://www.cninfo.com.cn/
【公司代码】600888
【时间范围】2026-01-01 至今
【任务一:公告列表】采集字段:
1. 股票代码
2. 公司简称
3. 公告标题(保持原文,不截断不改写)
4. 公告类型(定期报告 / 业绩类 / 权益变动 / 其他)
5. 公告日期(YYYY-MM-DD)
6. 附件链接(PDF 完整网址)
7. 附件文件(下载后的本地文件名)
【任务二:下载附件】
只下载「定期报告」类的 PDF,命名规则:
代码_报告名称_公告日期.pdf
例如:600888_2026半年报_20260828.pdf
【任务三:抽取财报要点】从最新的定期报告里抽取:
8. 报告期
9. 营业收入
10. 净利润(归母口径)
11. 营收同比(%)
12. 净利同比(%)
单位要保留(如「亿元」),同比单位是 %,只写数字。
找不到的指标留空,不要估算。
【执行要求】
- 先抓列表给我确认,再下载与抽取
- 每个指标要标出在 PDF 的第几页
- 导出为 announce_600888_20261009.xlsx
4.1 三条追问指令
追问一(核对类型):
请检查公告类型有没有归错,把「业绩预告」这类归到「业绩类」,
不要漏进「其他」。
追问二(核对指标):
请在财报 PDF 里找到每个指标的原文位置,
告诉我它在第几页、原文是怎么写的。
追问三(对齐口径):
净利润请统一用「归属于母公司股东的净利润」口径,
如果原文用的是别的口径,请说明并换算。
AI 助手小贴士|年报和半年报的口径可能略有差异。让 AI 在抽取时注明数据来自哪份报告,避免混用。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:这些指标分别来自哪份报告?请标出报告名称和披露日期,避免把不同报告的数字混在一起。
五、结果核对、清洗与保存
公告列表示例(节选。以下为虚构示例数据:仅用于演示台账结构与字段口径,文中的公告标题、日期与文件名均不对应真实的披露文件,请勿引用):
| 公告标题 | 公告类型 | 公告日期 | 附件 |
|---|---|---|---|
| 2026 年半年度报告 | 定期报告 | 2026-08-28 | 600888_2026半年报_20260828.pdf |
| 2026 年半年度业绩预告 | 业绩类 | 2026-07-15 | 600888_2026半年报预告_20260715.pdf |
| 关于回购公司股份的进展公告 | 其他 | 2026-06-03 | 600888_回购进展_20260603.pdf |
| 2026 年第一季度报告 | 定期报告 | 2026-04-28 | 600888_2026一季报_20260428.pdf |
财报要点示例(虚构示例数据,非任何一家公司的真实财报,仅用于演示「营业收入 / 净利润 / 同比」这几列该怎么摆):
| 报告期 | 营业收入 | 净利润 | 营收同比 | 净利同比 | 来源页码 |
|---|---|---|---|---|---|
| 2026 年半年度 | 156.80 亿元 | 18.42 亿元 | 12.35 | 8.71 | 第 12 页 |
5.1 四项核对
| 核对项 | 正常表现 | 发现问题怎么问 |
|---|---|---|
| 公告条数 | 与页面显示一致,无遗漏 | 「2026 年的公告有 32 条,现在只有 28 条,请补采」 |
| 类型归类 | 定期报告与业绩类分开 | 「第 5 条被归到其他,实际是业绩预告」 |
| 附件命名 | 统一为 代码_报告名_日期.pdf | 「请按命名规则重命名所有附件」 |
| 指标口径 | 注明来源页码与口径 | 「净利润请标明是否归母口径」 |
5.2 保存与归档
announce_600888_20261009.xlsx ← 公告台账
report_600888_20261009.xlsx ← 财报要点表
pdfs/ ← 附件归档目录
600888_2026半年报_20260828.pdf
600888_2026一季报_20260428.pdf
announce_600888_20261009_log.txt ← 日志:条数、下载数、失败项
pdfs/600888/。公司多了以后,这个习惯能救命。AI 助手小贴士|从 PDF 抽的数字,务必人工抽查一两个。PDF 里常有「千元」「万元」单位的坑,抽错单位差一千倍。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请确认财报里营业收入的原始单位是什么,并说明它和「亿元」之间的换算过程。
课程思政|数据安全与法治素养 · 以官方披露为准绳
公告与财报是公司依法披露的正式文件,也是最有权威性的信息源。任何二手转述都可能失真。做研究要认准原文、标明出处,既是对事实负责,也避免了传播不实信息带来的风险。
六、常见问题与合规红线
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 公告条数比页面少 | 分页未翻完 | 要求翻页到底,并核对总数 |
| 「业绩预告」被归到「其他」 | 类型清单未用上 | 把归类规则写进提示词并复查 |
| PDF 下载失败 | 链接失效或频率过高 | 降低频率、稍后重试;仍失败就记录并跳过 |
| 抽取的净利润与实际差很多 | 单位看错(万元当成元)或口径不同 | 回到 PDF 原文核对单位与口径 |
| 附件文件名五花八门 | 没有统一命名规则 | 按要求批量重命名,保留原文件 |
| 指标混用了不同报告的数字 | 未标注数据来源 | 每行注明报告名称与披露日期 |
6.1 三条红线
- 以官方披露为准。数字必须来自公告原文,标明出处;转载他人统计结果要注明来源。
- 控制下载频率。大文件批量下载要放慢节奏,避免给对方服务器造成压力。
- 仅用于教学分析。不构成投资建议;对外分享必须注明「数据来源与报告期」。
课程思政|科技自立自强 · 把公开信息变成判断力
上市公司依法公开披露信息,这些数据对整个市场开放。谁能高效地把公告、财报整理成可分析的结构,谁就能更早、更准地形成自己的判断。数据素养,正在成为现代人参与经济活动的一项基础能力。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1本研究要抽取的「净利润」,更规范的口径通常是?
- A. 营业利润
- B. 归属于母公司股东的净利润
- C. 利润总额
- D. 任意一个利润数字
2关于财报数字,最可靠的做法是?
- A. 以官方披露的原文为准并标明出处
- B. 以论坛讨论为准
- C. 以短视频里的解读为准
- D. 自己估算
3附件 PDF 的规范命名,下面哪一项最合适?
- A. report.pdf
- B. 新建 PDF(3).pdf
- C. 600888_2026半年报_20260828.pdf
- D. 下载的文件.pdf
4公告里出现「业绩预告」,应归入哪一类?
- A. 定期报告
- B. 业绩类
- C. 权益变动
- D. 其他
5财报原文写着「营业收入 1,568,000 万元」,换算成亿元是多少?
- A. 1.568 亿元
- B. 15.68 亿元
- C. 156.8 亿元
- D. 1568 亿元
6公告条数比页面显示的少,首先应该怀疑?
- A. 网站出错了
- B. 分页没有翻完
- C. 公司删了公告
- D. PDF 太大
7抽取指标时找不到某个数字,正确的处理是?
- A. 按同类公司估算一个
- B. 取上季度的数字代替
- C. 随便填一个
- D. 留空并说明找不到
8从 PDF 抽取数字后,必不可少的一步是?
- A. 人工抽查并回原文核对单位与口径
- B. 配色美化
- C. 压缩文件
- D. 直接发布
9关于本案例数据的用途,正确的是?
- A. 仅用于教学分析,不构成投资建议
- B. 可直接作为买卖依据
- C. 可随意转发原文
- D. 属于内部数据
10把公告按类型归档,主要价值是?
- A. 让文件看起来整齐
- B. 减少下载量
- C. 便于统计文件个数
- D. 便于快速定位定期报告与业绩信息