Back to skills
extension
Category: Data & AnalyticsNo API key required

财报爬虫

上市公司财报数据爬虫与行业横向对比分析技能。通过东方财富公开 API 自动抓取 A 股上市公司的 资产负债表、利润表、现金流量表及核心财务指标,自动识别同行业上市公司,进行多维度横向对比 (盈利能力 / 偿债能力 / 运营效率 / 成长性),并按加权评分输出综合排名。 触发场景(命中任一即加载本技能): (a) 抓取财报数据:如"抓取 X 公司的财报""获取 X 的利润表/资产负债表/现金流量表"; (b) 行业对比:如"对比 X 行业的上市公司""白酒行业哪家公司财务最好""X 行业内公司排名"; (c) 同行识别:如"X 公司的同行业公司有哪些""X 行业有多少家上市公司"; (d) 多公司对比:如"对比 A B C 三家公司的财务指标""X 和 Y 谁的财务更好"; (e) 与 caibao-fenxi 协同:先批量爬取+量化排名,再对 TOP 公司做五维度深度分析。 本技能是 caibao-fenxi 的"数据获取层":负责数据采集与量化对比, caibao-fenxi 负责拿到数据后的五维度深度分析与陷阱识别。

personAuthor: user_0944f675hubcommunity

爬虫抓取:上市公司财报爬虫与行业对比分析

Overview

自动抓取 A 股上市公司三大财务报表(利润表、资产负债表、现金流量表)及核心财务指标, 自动识别同行业上市公司,进行四维度横向对比分析(盈利能力 / 偿债能力 / 运营效率 / 成长性), 按加权评分输出综合排名。与 caibao-fenxi 技能协同:本技能负责数据采集与量化对比, caibao-fenxi 负责五维度深度分析。

核心能力

1. 财报数据抓取

通过东方财富公开 API 抓取上市公司三大报表和关键财务指标。

脚本: scripts/fetch_financial_data.py

使用方式:

# 抓取全部财报数据(三大报表+关键指标+公司信息)
python scripts/fetch_financial_data.py 600519

# 指定报告期
python scripts/fetch_financial_data.py SH600519 --dates 2023-12-31,2022-12-31

# 只抓取某张报表
python scripts/fetch_financial_data.py 600519 --statement balance
python scripts/fetch_financial_data.py 600519 --statement income
python scripts/fetch_financial_data.py 600519 --statement cashflow
python scripts/fetch_financial_data.py 600519 --statement indicators

输出: JSON 格式的结构化财务数据,包含:

  • 公司信息(名称、行业、上市日期)
  • 资产负债表(资产、负债、权益等)
  • 利润表(收入、成本、利润等)
  • 现金流量表(经营/投资/筹资现金流)
  • 关键财务指标(ROE、毛利率、净利率、周转率等)

支持的股票代码格式: 600519 / SH600519 / 000001.SZ / SZ000001

2. 同行业公司获取

自动识别股票所属行业板块,获取同行业全部上市公司列表。

脚本: scripts/get_industry_peers.py

使用方式:

# 获取同行业公司(默认最多50家)
python scripts/get_industry_peers.py 600519

# 限制数量
python scripts/get_industry_peers.py SH600519 --limit 20

输出: JSON 格式的同行业公司列表,包含每家公司的代码、名称、市场。

3. 行业横向对比与排名

完整流水线:获取同行 → 批量抓取财报 → 计算指标 → 评分排名。

脚本: scripts/industry_comparison.py

使用方式:

# 默认对比10家同行
python scripts/industry_comparison.py 600519

# 对比20家,指定报告期
python scripts/industry_comparison.py SH600519 --limit 20 --date 2023-12-31

# 输出文本报告
python scripts/industry_comparison.py 600519 --format text

# 保存到文件
python scripts/industry_comparison.py 600519 -o report.json
python scripts/industry_comparison.py 600519 --format text -o report.txt

输出: 包含以下内容的 JSON / 文本报告:

  • 目标公司信息与行业分类
  • 各公司四维度财务指标明细
  • 各维度归一化评分(0-100)
  • 加权综合评分与排名

对比维度与评分

| 维度 | 指标 | 权重 | |------|------|------| | 盈利能力 | 毛利率、净利率、ROE、ROA | 30% | | 偿债能力 | 流动比率、速动比率、资产负债率 | 25% | | 运营效率 | 存货周转率、应收账款周转率、总资产周转率 | 20% | | 成长性 | 营收增长率、净利润增长率 | 25% |

评分方法:各指标在同行内做 min-max 归一化至 0-100 分,"越低越好"的指标(如资产负债率)反转分数,缺失数据按中性分 50 处理,加权汇总得综合分。

详细指标定义和行业基准见 references/financial_metrics.md

工作流程

场景一:抓取单家公司财报

用户: "抓取贵州茅台的财报数据"
→ 运行 fetch_financial_data.py 600519
→ 输出 JSON 格式的三大报表+关键指标

场景二:获取同行业公司

用户: "白酒行业有哪些上市公司"
→ 运行 get_industry_peers.py 600519
→ 输出同行业公司列表

场景三:行业横向对比排名

用户: "对比白酒行业的上市公司并排名"
→ 运行 industry_comparison.py 600519 --limit 15
→ 输出量化对比表+综合排名

场景四:与 caibao-fenxi 协同深度分析

用户: "分析白酒行业,对比前5名的基本面"
→ Step 1: 运行 industry_comparison.py 获取排名
→ Step 2: 加载 caibao-fenxi 对 TOP 5 逐个做五维度分析
→ Step 3: 输出 排名表 + 五维度分析报告 + 陷阱识别

与 caibao-fenxi 的详细集成方式见 references/integration_guide.md

脚本执行环境

  • Python: 使用系统 Python 或 WorkBuddy 托管 Python (3.13+)
  • 依赖: 仅使用标准库(urllib, json, argparse),无第三方依赖
  • 路径: 脚本位于技能目录的 scripts/ 下,支持直接执行和模块导入

执行示例:

# 使用 WorkBuddy 托管 Python
python scripts/fetch_financial_data.py 600519

# 确保脚本能找到 utils 模块
cd ~/.workbuddy/skills/爬虫抓取 && python scripts/industry_comparison.py 600519

API 参考

本技能使用东方财富公开 JSON 接口,无需认证。详细的 API 端点、参数和字段说明见 references/api_endpoints.md

与其他技能的协作

| 技能 | 角色 | 协作方式 | |------|------|---------| | caibao-fenxi | 五维度分析框架 | 本技能提供数据 → caibao-fenxi 深度分析 | | wb-finance-skill | 金融数据总入口 | 数据补充来源,本技能为批量场景优化 | | westock-data | 精确字段查询 | 单只股票的补充数据源 | | neodata-financial-search | 自然语言金融搜索 | 兜底数据源 |

红线

  • 不编造数据: API 返回空值时标注"数据缺失",不填充默认值
  • 不跨行业对比: 评分仅用于同行业横向对比,不同行业指标基准不同
  • 不替代定性分析: 量化排名是筛选工具,不替代护城河、管理层等定性分析
  • 尊重接口频率: 请求间隔 ≥ 0.3 秒,避免被封禁
  • 投资建议需谨慎: 量化排名不构成投资建议,需结合 caibao-fenxi 的五维度分析