一、案例背景与采集目标
从这一案例起,我们进入金融数据。第一个目标很直接:把一批股票的最新行情取回来,做成一张随时能刷新的表。
示范站点选东方财富网行情中心,地址 https://quote.eastmoney.com/center/gridlist.html。打开它,你会看到一张全市场股票列表:代码、名称、最新价、涨跌幅、涨跌额、成交量、成交额、换手率、市盈率、总市值……一屏十几个字段,随行情跳动。这张表背后是公开的行情接口,返回结构化的 JSON 数据,比从网页 HTML 里抠字干净得多。这正是金融数据的优势:格式规整、字段固定、适合批量处理。
1.1 这个案例要拿到什么
- 若干只股票(或一个板块成分股列表)的最新行情;
- 每只股票:代码、名称、最新价、涨跌幅、涨跌额、成交量、成交额、换手率、市盈率、总市值等;
- 把结果做成一张表,可以反复刷新,每次刷新的数据带时间戳;
- 看懂涨跌幅的正负号与单位,并记住一条中国口径:涨用红、跌用绿。
1.2 三个要点
| 要点 | 说明 | 为什么重要 |
|---|---|---|
| 数据来自公开接口 | 东方财富行情中心前端调用的行情接口返回 JSON,字段固定 | 比解析 HTML 稳定得多,是金融数据的常见形态 |
| 涨跌幅的正负与单位 | 如 2.35 表示涨 2.35%,-1.08 表示跌 1.08% | 写错符号或漏掉百分号,结论完全反了 |
| 换手率与市盈率的口径 | 换手率 = 成交量 ÷ 流通股本;市盈率有静态、动态之分 | 口径不写清,横向比较就失去意义 |
| 公开延时行情 | 多为延时数据,非实时撮合报价 | 只能用于学习分析,不能当作交易依据 |
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 东方财富行情中心 https://quote.eastmoney.com/center/gridlist.html 行情接口返回 JSON,字段结构稳定,是练「接口型采集」的最佳对象 |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★★☆ 中 |
| 合规提示 | 行情数据版权归交易所与数据商所有,教学仅限学习研究;公开接口多为延时行情,报告中必须声明「数据仅用于教学,不构成投资建议」。 |
二、数据源与字段设计
数据源:东方财富网行情中心,地址 https://quote.eastmoney.com/center/gridlist.html。页面用起来像「表格」,但它其实是前端调用公开行情接口拿到的 JSON,再由页面渲染成表格。我们让 AI 直接取接口返回的字段即可。
2.1 站点信息
| 项目 | 内容 |
|---|---|
| 站点全称 | 东方财富网 · 行情中心(quote.eastmoney.com),国内访问量最大的财经门户之一 |
| 示范网址 | https://quote.eastmoney.com/center/gridlist.html |
| 页面形态 | 前端调用的公开行情接口,返回 JSON;页面把 JSON 渲染成行情表 |
| 字段覆盖 | 代码、名称、最新价、涨跌幅、涨跌额、成交量、成交额、振幅、最高、最低、今开、昨收、换手率、市盈率、总市值等 |
| 规模说明 | 沪深两市 5000 余只股票,可按板块、行业、涨跌幅排序筛选 |
| 访问约束 | 公开接口,无需登录;但仍应低频访问(间隔 1 秒以上),不做高频轮询 |
2.2 延伸站点(可作对照)
| 站点 | 网址 | 教学用途 |
|---|---|---|
| 新浪财经行情 | https://finance.sina.com.cn/stock/ | 老牌公开行情接口,字段命名不同,可做对照 |
| 腾讯财经行情 | https://stockapp.finance.qq.com/ | 接口简洁,适合讲「同一数据不同来源」 |
| 同花顺 | https://www.10jqka.com.cn/ | 页面渲染较重,可作动态页面讨论 |
2.3 完整字段表(15 个字段)
示例值取自 600519(贵州茅台)2026-10-09 收盘的真实行情;行情随时在动,你采集时以当天实际数据为准。
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
代码 | 股票代码 | 600519 | 六位数字,注意保留前导零(如 000001) |
名称 | 股票简称 | 贵州茅台 | 中文简称,以官方为准 |
最新价 | 当前价格 | 1263.00 | 单位:元,保留两位小数 |
涨跌幅 | 相对昨收的涨跌百分比 | 0.57 | 正为涨、负为跌,只写数字,单位是 % |
涨跌额 | 相对昨收的绝对变化 | 7.21 | 单位:元,与涨跌幅可互相校验 |
今开 | 今日开盘价 | 1255.42 | 单位:元 |
最高 | 今日最高价 | 1282.00 | 单位:元 |
最低 | 今日最低价 | 1255.42 | 单位:元 |
昨收 | 前一交易日收盘价 | 1255.79 | 单位:元,核对涨跌的基准 |
成交量 | 当日成交手数 | 35111 | 单位:手,1 手 = 100 股 |
成交额 | 当日成交金额 | 4453220000 | 单位:元;页面常显示为「44.53亿」需换算 |
换手率 | 成交量占流通股本比例 | 0.28 | 单位 %;反映交投活跃度 |
市盈率 | 市盈率(动态) | 19.39 | 单位:倍;亏损股可能为空或为负 |
总市值 | 公司总市值 | 1578853000000 | 单位:元;页面常以「亿」显示 |
采集时间 | 本次刷新的时间 | 2026-10-09 15:00:05 | 每次刷新都记,行情是时点数据 |
2.4 涨跌幅怎么读
涨跌幅 = (最新价 - 昨收) ÷ 昨收 × 100%
示例(2026-10-09 真实行情):
昨收 1255.79,最新价 1263.00
涨跌额 = 1263.00 - 1255.79 = 7.21 元
涨跌幅 = 7.21 ÷ 1255.79 × 100% ≈ 0.57%
读数规则:
- 正数表示上涨,负数表示下跌;
- 表格里统一写成数字(如 2.35、-1.08),单位是百分号,不要重复加「%」;
- 涨跌额与涨跌幅要能对得上,对不上说明数据有问题。
2.5 中国习惯:涨用红、跌用绿
这里要特别提醒一个容易写错的地方。在中国大陆市场的惯例中:
- 上涨对应的颜色是 红色;
- 下跌对应的颜色是 绿色;
- 这与部分海外市场(如美股)「绿涨红跌」的习惯正好相反。
AI 助手小贴士|接口返回的字段名有时是英文缩写(如 f2、f3、f12)。让 AI 先翻译成中文列名,你核对一遍再采集,能避免张冠李戴。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把行情接口返回的字段名和它们对应的中文含义列成一张对照表,标出每个字段的单位,先不要开始采集。
课程思政|科技自立自强 · 把行情接口用起来
金融数据的背后是一整套信息基础设施:交易系统、行情分发、数据接口。能熟练地把公开接口接进来、把数据理清楚,是数字化时代的基本功。掌握数据能力,就能把公开的信息变成自己的判断力,而不是被动接受别人的结论。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 打开行情中心,定位最新价、昨收、涨跌额这几列在页面的哪个位置 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
https://quote.eastmoney.com/center/gridlist.html,确认最新价、昨收、涨跌额、成交量分别在哪一列。 - 小样试采(WorkBuddy):先只取
600519一只,确认字段都能取到、数值合理。 - 核对与清洗:① 用「最新价 − 昨收 = 涨跌额」互算一遍能不能对上;② 数值单位写清了没有;③ 有没有新增「采集时间」列(金融数据必须能追溯时点)。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 https://quote.eastmoney.com/center/gridlist.html(东方财富行情中心),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。- 新建对话,粘贴提示词(见下一节),把行情中心网址原样粘进去。
- 先取一只股票试水。说「先只取 600519 这一只」,确认字段都能取到、数值合理。
- 核对涨跌。用「最新价、昨收、涨跌额」三者互算一遍,看能不能对上公式。
- 扩到一批股票。说「再取这几只:600519、000001、601318、000858」并合并成一张表。
- 加时间戳。说「新增一列采集时间,格式 2026-10-09 15:00:05」。
- 做成可刷新。说「以后我每次说『刷新』,你就重取一遍并写成新的一行追加到历史快照表里,不要覆盖旧数据」。
- 导出并命名。导出为
quote_20261009_1500.xlsx,文件名带上时间。
四、提示词模板与追问技巧
下面这段可以直接复制。注意三点:真实网址、字段编号带单位、刷新定义成追加。
请帮我完成一个股票实时行情采集任务。
【数据来源】东方财富网行情中心,网址:https://quote.eastmoney.com/center/gridlist.html
【股票列表】600519、000001、601318、000858
【需要字段】按这个顺序:
1. 代码(六位,保留前导零)
2. 名称
3. 最新价(单位:元)
4. 涨跌幅(正为涨、负为跌,只写数字,单位是 %)
5. 涨跌额(单位:元)
6. 今开(单位:元)
7. 最高(单位:元)
8. 最低(单位:元)
9. 昨收(单位:元)
10. 成交量(单位:手,1 手 = 100 股)
11. 成交额(单位:元)
12. 换手率(单位 %)
13. 市盈率(动态,单位:倍)
14. 总市值(单位:元)
15. 采集时间(格式 2026-10-09 15:00:05)
【执行要求】
- 先只取 600519 一只给我确认字段,再批量取全部
- 涨跌幅和涨跌额要能用公式互相对上,对不上请告诉我
- 结果导出为 Excel,文件名 quote_20261009_1500.xlsx
- 说明一下:这批数据是延时行情还是实时行情
4.1 追问与刷新指令
追问一(核对涨跌):
请用「(最新价 - 昨收) ÷ 昨收 × 100%」算一遍涨跌幅,
和我表里的涨跌幅对比,把对不上的行标出来。
追问二(单位统一):
成交额和总市值请统一用「亿元」为单位并保留两位小数,
同时把原来以元为单位的数值列也保留。
追问三(做成刷新表):
以后我说「刷新」,你就重新取一遍这只股票列表的最新行情,
把结果写成新的一行追加到历史快照表里,
并新增一列采集时间,不要覆盖旧数据。
AI 助手小贴士|接口有时会分「单股查询」和「批量查询」。如果一只一只取很慢,问问 AI 有没有一次能取多只的写法。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:有没有一次能查询多只股票行情的接口方式?请对比单只查询和批量查询的请求次数。
五、结果核对、清洗与保存
结果样例(节选,2026-10-09 收盘真实行情,采集时间 15:00:05):
| 代码 | 名称 | 最新价 | 涨跌幅 | 涨跌额 | 成交量 | 成交额 | 换手率 | 采集时间 |
|---|---|---|---|---|---|---|---|---|
| 600519 | 贵州茅台 | 1263.00 | 0.57 | 7.21 | 35111 | 4453220000 | 0.28 | 2026-10-09 15:00:05 |
| 000001 | 平安银行 | 11.59 | -1.61 | -0.19 | 1078106 | 1259720000 | 0.56 | 2026-10-09 15:00:05 |
| 601318 | 中国平安 | 52.83 | 0.30 | 0.16 | 595936 | 3153260000 | 0.56 | 2026-10-09 15:00:05 |
| 000858 | 五粮液 | 70.56 | 0.60 | 0.42 | 178629 | 1257910000 | 0.46 | 2026-10-09 15:00:05 |
5.1 核对与清洗
| 核对项 | 正常表现 | 发现问题怎么问 |
|---|---|---|
| 涨跌一致性 | 最新价 - 昨收 = 涨跌额,且涨跌幅能算出 | 「第 2 行涨跌额与最新价、昨收对不上,请复核」 |
| 符号 | 涨为正、跌为负 | 「下跌的股票涨跌幅和涨跌额都要带负号」 |
| 单位 | 价格用元、成交量用手、成交额与总市值标明单位 | 「成交额统一改成亿元,并保留原元值列」 |
| 换手率 | 0~100 之间的百分比,活跃股偏高 | 「换手率请注明口径:成交量 ÷ 流通股本」 |
| 时间戳 | 每行都有,且为本次采集时间 | 「每行补上采集时间」 |
5.2 保存
quote_20261009_1500.xlsx ← 本次快照(文件名带时间)
quote_history.xlsx ← 历史快照汇总(每次刷新追加)
quote_20261009_1500_log.txt ← 日志:条数、失败项、数据来源说明
AI 助手小贴士|每张行情表都附一句「数据来源 + 采集时间 + 延时说明」。金融数据不标来源和时点,等于没有意义。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请在结果文件里加一个说明页,写清数据来源、采集时间、是否为延时行情。
课程思政|工匠精神与严谨求实 · 一个负号就是一个方向
涨跌幅少写一个负号,把「跌 1.08%」看成了「涨 1.08%」,方向就完全反了。金融数据里没有小错误,只有大错误。养成「用公式互算一遍」的习惯,是对数据负责,也是对自己负责。
六、常见问题与合规红线
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 涨跌幅没有负号 | 清洗时丢了符号 | 要求「跌为负」,并用涨跌额核对 |
| 成交量单位看不懂 | 接口返回的是手,表里当成股 | 统一标注单位:1 手 = 100 股 |
| 成交额显示成 4453220000 一长串 | 接口以元为单位返回,未换算 | 统一改成亿元并保留原元值列 |
| 刷新后旧数据不见了 | 用了覆盖模式 | 改为「追加一行并带时间戳」 |
| 不同股票采集时间不一致 | 一只一只取,耗时跨了分钟 | 尽量用批量查询,或统一记录采集批次时间 |
| 接口返回空或报错 | 接口临时不可用、参数有误或频率过高 | 降低频率、核对参数;仍失败就换公开接口并说明 |
6.1 三条合规与使用红线
- 只用公开行情接口。不破解需要授权的数据源,不做高频请求。
- 如实标注。结果必须写清来源与采集时间,并注明是否延时。
- 不做投资建议。本案例数据仅用于教学分析,任何情况下都不构成买卖依据。
课程思政|数据安全与法治素养 · 看清数据,守住底线
行情数据关系重大,采集与使用都有规矩:来源要公开、频率要克制、标注要如实。把「教学分析」和「投资依据」分清楚,既是专业素养,也是法律意识。数据可以帮你看清市场,但不该被拿来误导别人。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1本案例的行情数据主要通过什么形式获取?
- A. 从图片里识别
- B. 从网页 HTML 里抠文字
- C. 从公开接口返回的结构化数据(JSON)
- D. 手工抄写
2某股票昨收 1255.79,最新价 1263.00,涨跌幅约为?
- A. -0.57%
- B. 0.57%
- C. 7.21%
- D. 0.00%
3在中国大陆市场的惯例里,上涨用什么颜色表示?
- A. 红色
- B. 绿色
- C. 蓝色
- D. 黄色
4把「刷新行情」设计成追加一行而不是覆盖,主要好处是?
- A. 运行更快
- B. 文件更小
- C. 结果更整齐
- D. 积累历史快照,能回看某个时刻的行情
5某股票涨跌幅显示为 -0.84,正确的理解是?
- A. 上涨 0.84 元
- B. 上涨 0.84%
- C. 下跌 0.84%
- D. 与昨日持平
6关于本案例采集的行情数据,下面说法正确的是?
- A. 是实时撮合报价,可直接下单
- B. 是公开的延时行情,仅用于教学,不构成投资建议
- C. 是内部数据,需授权
- D. 可以随意公开传播作投资依据
7成交量列显示 35111,若接口单位是「手」,换算成股是多少?
- A. 3511100 股
- B. 35111 股
- C. 351100 股
- D. 3511 股
8要核对涨跌幅是否算错,最直接的方法是?
- A. 看颜色对不对
- B. 问 AI 对不对
- C. 用「(最新价-昨收)÷昨收」重算一遍对比
- D. 看文件大小
9多只股票的采集时间不一致,可能带来什么问题?
- A. 文件不好看
- B. 不同股票不在同一时点,横向比较会失真
- C. 浪费流量
- D. 没有影响
10行情表里必须写清的三样信息是?
- A. 字体、字号、颜色
- B. 作者的姓名和学号
- C. 操作系统和浏览器
- D. 数据来源、采集时间、是否延时