eastmoney-lhb-extract:从东方财富 API 拉取龙虎榜并导出 Excel

前言

做 A 股短线或资金面复盘时,龙虎榜往往是必看数据源:既要当日上榜个股概况,也要营业部席位上的买卖明细。常见做法是在东方财富网页里逐条点开、手工复制到表格,日期一多就容易漏项、字段也不统一。

下面介绍 SkillHub 社区 Skill eastmoney-lhb-extract(坐标 @user_1da200f4/eastmoney-lhb-extract,版本 1.0.2)。它把「榜单列表 + 按 TRADE_ID 拉明细 + 买方前五席 + Excel 导出」收成一套可重复执行的流程,适合交给 Agent 按自然语言触发,或在技能目录里直接跑 main.py。

这是什么

eastmoney-lhb-extract 是面向 data-analysis 的社区 Skill,发布者为 user_1da200f4,SkillHub 标注 requires_api_key=false,无需单独配置 API Key。

一句话定位:自动从东方财富数据中心接口获取龙虎榜单,再为每条记录拉取营业部成交明细,筛出买入金额最大的前五名买方席位,并生成可下载的 Excel。

与纯网页爬表相比,它直接调用东方财富公开的数据中心 API(datacenter-web.eastmoney.com),字段与分页在脚本里固定,便于按交易日批量复跑。

核心功能

依据技能包内 SKILL.md 与 main.py,已核实能力如下:

  1. 龙虎榜单:请求 reportName=RPT_DAILYBILLBOARD_DETAILS,支持分页(每页 500 条),可按 TRADE_DATE 过滤指定交易日。
  2. 成交明细:对每条榜单记录的 TRADE_ID 再请求 reportName=RPT_OPERATEDEPT_TRADE,拿到营业部维度数据。
  3. 买方前五席:在明细中筛选 TRADE_DIRECTION == '0'(买方),按 BUY_AMT_REAL 降序取前 5 名营业部。
  4. Excel 导出:默认输出 eastmoney_lhb.xlsx;每条股票若存在前五买方,会展开为 5 行(每行对应一个席位),列名与技能文档中的字段表一致(含 SECUCODE、涨跌幅、龙虎榜买卖额、上榜原因、席位名称与买卖金额等)。

Agent 侧可通过技能元数据中的触发词唤起,例如:龙虎榜、东方财富龙虎榜、提取龙虎榜数据、eastmoney lhb、lhb data。

安装与启用

安装 SkillHub CLI(若尚未安装)

先确认本机是否已有 CLI:

command -v skillhub && skillhub --version

未安装时,可按 SkillHub 官方安装文档执行完整安装(含 CLI 与默认 Skill):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

仅需要 CLI 时:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only

安装本 Skill

安装时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/,Agent 可能识别不到。

skillhub install @user_1da200f4/eastmoney-lhb-extract --dir <你的 skills 目录>

常用路径(来自 SkillHub 安装说明):

  • Cursor:~/.cursor/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/
  • Claude Code:~/.claude/skills/

也可以在对话里让 AI 按官方指引安装:

请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_1da200f4/eastmoney-lhb-extract`。

Python 依赖

技能入口为 main.py。在技能目录下安装 requirements.txt 中的依赖后再运行脚本:

pip install -r requirements.txt

依赖包括:requests、beautifulsoup4、pandas、openpyxl、lxml(版本下限见技能包内 requirements.txt)。

典型用法

进入技能安装目录(例如 .../eastmoney-lhb-extract/),按 SKILL.md 示例执行。

默认:前一个工作日的龙虎榜(周一会回退到上周五,脚本内 get_previous_workday() 处理周末):

python main.py

指定交易日(格式 YYYY-MM-DD):

python main.py --date 2026-04-23

自定义输出路径:

python main.py --output my_lhb_data.xlsx

在 Agent 中,用自然语言描述同一意图即可,例如「提取昨天东方财富龙虎榜并导出 Excel」;Agent 应进入技能目录、安装依赖后执行上述命令。

导出列与「每条股票 5 行买方席位」的规则见技能文档「Excel输出格式」一节,与 export_to_excel 实现一致。

适用场景与注意

适合谁

  • 需要按日归档龙虎榜、做席位统计或回测前清洗数据的量化/研究同学。
  • 希望在 Cursor、Codex 等环境里用对话触发固定提取流程,而不是每次手写请求参数。

限制与注意

  1. 数据来源与合规:数据来自东方财富公开接口,仅供研究与个人分析;请遵守站点使用条款,勿高频压测(脚本在翻页与逐股明细间有 time.sleep(0.2) 节流)。
  2. 网络与环境:需能访问 datacenter-web.eastmoney.com;无数据时脚本会提示检查日期或网络。
  3. 非交易日:指定日期若无上榜数据,可能得到空结果;默认「前一工作日」不等于「上一交易日」,遇节假日需手动 --date。
  4. 明细缺失:若某条记录没有买方前五数据,仍会导出一行,席位相关列为空。
  5. 社区维护:来源为 SkillHub community,版本以页面与安装包为准(当前 1.0.2);接口字段若东方财富调整,需关注技能更新。

SkillHub 页面统计(抓取时):评分 100000,下载约 865 次;标签标明无需 API Key。

结尾

eastmoney-lhb-extract 把龙虎榜列表、营业部明细和 Excel 模板对齐成一条命令链,适合纳入日常复盘或 Agent 工作流。安装与说明以 SkillHub 为准:

  • 技能页:https://www.skillhub.cn/skills/user_1da200f4/eastmoney-lhb-extract
  • API 条目:https://api.skillhub.cn/user_1da200f4/eastmoney-lhb-extract
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye