当前位置:

实战:用 BI 工具自动抓取巨潮网财报,并生成可视化仪表板

2025-11-12 18:06:55 编辑:拓

  过去这几年,我带过多个企业的财务分析项目,其中有一个始终绕不开的话题——上市公司财报数据分析自动化。 每次碰到这类需求,大家都会问:“能不能不手动下财报?能不能自动抓数据?能不能直接看成图表?”

  我想说:完全可以。 尤其是在 BI 工具越来越成熟的今天,我们已经可以把“数据抓取 + 数据清洗 + 财务指标可视化”这一整套流程跑通,实现真正意义上的自动化财报分析系统。

  今天这篇文章,我想结合我自己的实践经验,讲讲如何用 FineBI 自动抓取巨潮网(cninfo.com.cn)的上市公司财报数据,并搭建出可交互的财务仪表板。 这是一篇彻底的实战分享,我不会讲玄乎的理论,也不会堆术语,重点就是:怎么做、遇到什么坑、怎么解决。

  一、为什么要自动化抓取巨潮网财报?

  做过财务分析的人都知道,巨潮网是中国证监会指定的信息披露网站。它几乎涵盖了所有 A 股上市公司的定期报告(年报、季报、半年报)和公告。 但它的问题也很明显:

  手动下载效率极低。

  财报结构不统一。

  想批量分析,只能人工整理。

  我刚入行那几年,都是靠 Excel + 手动下载。一个分析周期下来,十几个公司的财务报表光整理就得两天。后来我开始用 Python 脚本爬取巨潮网的接口数据,效率确实上来了,但非技术人员根本用不了。

  所以我最终的解决方案是:把爬取逻辑前置,用 FineBI 接入自动化接口,再通过数据集建模和仪表板实现一键可视化。 简单说,就是把“财报分析”变成一个任何财务分析师都能操作的可视化工作流。

  二、巨潮网数据的获取逻辑

  在讲 FineBI 实操之前,先简单说一下巨潮网的数据结构和接口。

  巨潮网开放的接口地址是:

  http://www.cninfo.com.cn/new/disclosure

  数据一般可以通过 POST 请求获取,比如输入公司代码、公告类型、日期区间,就能拿到 JSON 格式的数据列表。

  POST 参数里包含:

  {

  "stock": "600519",

  "pageNum": 1,

  "pageSize": 30,

  "tabName": "fulltext",

  "plate": "szse",

  "category": "category_ndbg"

  }

  返回结果里会包含报告标题、发布时间、文件下载地址等字段。

  一般我们会把这些文件(PDF 格式)批量下载,再通过解析工具(如 Tabula、Camelot)提取表格数据。

  但这些技术操作,对于非技术分析师来说门槛不低。于是我在项目中采用了折中方案: 使用帆软FineBI现成的数据源连接器,通过可视化配置的方式对接获取到上市公司财报数据,不用代码开发,相比与每次手动PDF、excel导出的好处是数据全且自动更新。这样,财务部门的人不需要懂爬虫,也能直接分析最新财报数据。

  三、用 FineBI 实现自动化数据更新

  FineBI 的优势在于它的数据连接和刷新机制。 我通常这样配置整个数据链路:

  数据源端:Python 脚本定时抓取巨潮网数据(通过企业内部服务器或云函数执行),把结构化的财报信息写入 MySQL 或 SQL Server。

  BI 层:FineBI 连接数据库,设置自动刷新频率(例如每天早上 8 点),这样最新的财报一更新,BI 仪表板里的数据就能自动同步。

  FineBI 支持多种连接方式,包括 API 接口、数据库直连、Excel 导入等。对巨潮网这种外部数据,最常用的是数据库中转。

  我自己的配置经验是:

  用 FineBI 数据集管理 建立“上市公司财报数据集”,主要字段包括: 股票代码、公司简称、公告标题、公告类型、报告期、发布日期、总资产、净利润、经营现金流等;

  对不同报表类型(资产负债表、利润表、现金流量表)建立独立数据集;

  用自定义字段计算财务指标,比如 ROE、毛利率、负债率、经营性现金流占比等。

  配置完成后,FineBI 每天定时拉取数据库最新数据,不需要人工操作。

  四、搭建财务可视化仪表板的思路

  抓数据只是第一步,关键是怎么把它变成“能看懂、能决策”的分析结果。

  我在搭建上市公司财务仪表板时,一般分为三个层次:

  1. 公司层面视图(Overview)

  这一页我会放全局指标,比如:

  总资产、净利润、营业收入、ROE、负债率、现金流等核心财务数据;

  同比、环比趋势折线图;

  近五年主要财务指标对比;

  报告期切换下拉框(FineBI 支持参数联动选择年度或季度)。

  FineBI 的“仪表板组件”在这里很好用,可以用数字卡片、折线图、柱状图组合展示。 比如我常用 FineBI 的“组合图表”功能,把收入、利润、毛利率放在同一个图上,能直观看出利润空间的变化。

  2. 结构层面视图(Structure)

  这一页主要分析财务结构,比如:

  资产结构(货币资金、应收账款、存货、固定资产占比);

  负债结构(短期借款、应付账款、长期负债占比);

  成本构成与费用率变化趋势。

  我会用 FineBI 的“树状结构图”或“堆叠条形图”展示结构占比,再加上时间筛选参数,方便查看不同季度变化。

  3. 行业对标视图(Benchmark)

  这部分是管理层最关心的。 我通常会准备同行业 5~10 家上市公司的数据,用 FineBI 的“数据集联合”功能合并后计算平均值、中位数。 再在仪表板中加一张对比表,显示本公司与行业均值差异,比如:

  ROE 比行业高 2.3%

  负债率比行业高 8%

  现金流波动幅度小于行业均值

  FineBI 支持动态参数选择公司,实现“一键切换分析对象”。

  五、模型层:构建关键财务指标的逻辑

  在财务分析中,模型逻辑决定了仪表板是否有意义。 我在 FineBI 中构建的核心指标逻辑包括以下几个方面:

  盈利能力分析 毛利率 =(营业收入 - 营业成本)/ 营业收入 净利率 = 净利润 / 营业收入 ROE = 净利润 / 股东权益

  偿债能力分析 资产负债率 = 总负债 / 总资产 流动比率 = 流动资产 / 流动负债 速动比率 =(流动资产 - 存货)/ 流动负债

  运营效率分析 应收账款周转率 = 营业收入 / 平均应收账款 存货周转率 = 营业成本 / 平均存货 总资产周转率 = 营业收入 / 平均总资产

  现金流健康度分析 经营现金流净额占比 = 经营现金流净额 / 净利润 自由现金流 = 经营现金流 - 资本支出

  这些指标我会全部放在 FineBI 的数据集中,通过计算字段实现自动计算。 好处是,只要底层数据更新,所有指标自动刷新,根本不需要再人工计算。

  六、FineBI 的几个实用技巧

  很多人在 BI 工具上折腾半天,效果不理想,问题往往不在工具,而在用法。 我自己在用 FineBI 搭建财报分析系统时,有几个小技巧特别实用:

  参数联动 比如选择公司代码后,所有报表、图表都自动切换到对应公司。FineBI 的参数传递机制很好用,一次设置,全局联动。

  自定义主题 财报数据偏正式,我一般用深灰+蓝色主题,FineBI 支持导入主题模板,整体风格统一,观感更专业。

  多场景保存 比如我想对比 2023 年和 2024 年财报表现,可以在仪表板中保存两套筛选场景,方便切换。

  数据刷新通知 FineBI 的计划任务可以在数据刷新失败时发送邮件提醒,这对生产环境非常有用,防止接口异常导致数据不更新。

  七、经验反思:从“数据可视化”到“财务洞察化”

  这几年我发现一个共识:很多企业花了不少钱做 BI,但最终只做成了“报表展示”。 真正能产生价值的,是让数据推动洞察,让分析帮助判断。

  我自己在项目中总结出一个规律:

  当数据更新自动化、模型逻辑透明化、结果展示交互化时,财务分析的效率会呈指数级提升。

  而这三点,用 FineBI 的体系基本都能实现。

  自动化抓取巨潮网财报,是一个切口。更深层的意义在于,让企业财务分析体系摆脱人工依赖,从“报表制作”走向“洞察驱动”。

  八、结语:自动化财报分析,不只是技术升级,更是认知升级

  很多人做 BI,是为了“可视化好看”;但在财务场景里,我始终强调:可视化是手段,自动化是目的,洞察化才是终点。

  从最初的手工下载 PDF,到后来半自动脚本,再到现在通过 FineBI 全流程自动化财报分析,我的体会是:

  只有当数据流动起来,财务分析才能真正发挥价值。

  FineBI 给到的,不只是图表,而是让整个财务数据从获取、计算到展示,全部在一个体系内自循环。 当管理层早上打开仪表板,就能看到最新一期财报的核心指标变化,这种效率提升,带来的不仅是时间节省,更是决策速度的提升。

  总结一句话: 自动抓取巨潮网财报 + FineBI 动态仪表板,不只是技术实践,更是一种分析思维的转变。 它让财务分析从“报告制作”升级为“数据决策”。这套体系我已经在多个企业跑通,效果非常稳。

  如果你也在做上市公司分析、投资研究、或者企业对标,这套方法值得你认真试一次。



免责声明:此文为转载,版权归原作者所有,市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权或其他异议,请联系15632383416,我们将尽快处理。