网页数据采集与接口方案报告

用于后续选择网页数据、公开接口、AkShare、浏览器渲染抓取等方案时参考
核心原则 能用结构化接口,就不要优先爬页面。
主数据优先级 官方 API / 公开接口 / AkShare > 页面 JSON > 浏览器渲染 > 逐页详情。
龙虎榜建议 日报自动化用 AkShare;重点复盘再用详情页核验。

一、先区分:网页爬取还是 API 接口

很多看起来像“网页爬取”的数据,底层其实是页面调用了一个 JSON 接口。真正的网页爬取,是从 HTML、DOM、页面文本或渲染后的浏览器内容里提取数据。

类型 判断方式 例子 稳定性
API官方接口 有文档、认证、字段说明、调用限制。 交易所接口、付费金融数据接口、企业开放平台。 最高
API非官方公开接口 网页背后调用 JSON 接口,通常在 Network 面板可见。 东方财富 datacenter-web、部分财经站榜单接口。 中高,可能改参数或反爬
混合AkShare / Tushare 库封装多个数据源,底层可能是接口,也可能少量解析网页。 ak.stock_lhb_detail_em() 高,取决于库维护和上游接口
爬取静态 HTML 直接下载 HTML,表格已经在源码里。 简单公告列表、静态表格页。 中,页面结构变化会影响解析
爬取浏览器渲染 必须打开浏览器等待 JS 渲染,再取 DOM 或页面文本。 动态榜单、需要 JS 运行的页面。 慢且重,仅适合兜底

二、常见采集方式对比

方式 底层逻辑 属于网页爬取还是 API 适合场景 优点 缺点
官方 API 数据方正式提供接口,有文档和权限体系。 API 商用系统、长期稳定任务、合规要求高的数据。 稳定、字段清楚、可追责、合规最好。 可能收费、申请复杂、限额严格。
公开 JSON 接口 网页前端调用的后台接口,返回 JSON。 API 榜单、行情、新闻列表、资金流等结构化数据。 快、轻、结构化、适合自动化。 接口可能改名、参数可能变化,需监控。
AkShare / Tushare 第三方库封装多个公开接口和少量网页解析。 通常偏 API A 股、基金、宏观、行情、龙虎榜等批量采集。 开发成本低、字段统一、速度快。 依赖库维护;字段口径需要核验。
页面内嵌 JSON HTML 源码里包含数据变量或 JSON 片段。 介于两者 接口被隐藏或难直接调用,但页面源码有完整数据。 比 DOM 稳、比浏览器渲染快。 结构可能变化,解析规则要维护。
静态 HTML 解析 下载 HTML,用正则或解析器提取表格。 网页爬取 静态表格、公告页面、简单列表。 实现简单,无需浏览器。 动态页面无效,页面改版容易失效。
浏览器渲染抓取 用 Edge/Chrome/Playwright 打开网页,等 JS 渲染后取数据。 网页爬取 没有接口、只有动态页面、需要模拟真实用户访问。 最接近人看到的页面,可作为兜底。 慢、重、易受弹窗/广告/反爬影响。
逐页详情抓取 先拿列表,再逐个打开详情页抓明细。 网页爬取 需要精确明细、补字段、核验重点标的。 信息最细,可补充主接口没有的字段。 非常慢,稳定性差,不适合日报主流程。

三、主数据的分层逻辑

自动化报告不应该把所有数据都当成同一层。建议分成主数据、补充数据和校验数据。

层级 作用 推荐来源 示例字段
主数据 决定排名、金额、数量、结论。 官方 API、公开 JSON 接口、AkShare/Tushare。 代码、名称、涨跌幅、净买额、上榜日期、上榜原因。
补充数据 丰富解释和业务含义。 网页解析、同花顺/雪球/公告、行业分类接口。 行业、概念、席位标签、新闻原因、连续上榜。
校验数据 发现主数据异常或口径偏差。 第二数据源、网页可见表格、历史缓存、详情页抽样。 总上榜数量、TOP 排名、机构买卖金额、页面截图。
建议:日报自动发送时,主数据必须走接口或 AkShare;网页爬取更适合补充字段和异常校验,不适合作为首选主流程。

四、AkShare 的定位

AkShare 不是数据源本身,而是一个第三方数据采集库。它封装了东方财富、新浪、交易所等多个公开数据源。

问题 说明
它是网页爬取还是 API? 大多数函数偏 API/公开接口封装,也有少量函数可能解析网页。具体要看函数实现。
为什么快? 它通常直接调用结构化接口,返回 pandas DataFrame,不需要打开网页、等待渲染、逐页解析。
适合什么? A 股行情、龙虎榜、资金流、基金、宏观、财报等批量结构化数据。
风险是什么? 上游接口变化、库版本变化、字段口径不透明、无人值守时需要异常提醒。

龙虎榜示例

import akshare as ak

df = ak.stock_lhb_detail_em(start_date="20260701", end_date="20260701")
print(df.head())

这类方式直接返回明细表,比逐只打开东方财富详情页快很多。

五、龙虎榜案例复盘

模式 数据来源 速度 口径 适合用途
AkShare 模式 ak.stock_lhb_detail_em AkShare/东方财富接口明细口径。 日报主流程、定时发送、快速复盘。
首页 JSON 快速模式 东方财富首页内嵌 JSON,如 BILLBOARD_NET_AMT 首页净买额汇总口径,可能不同于详情页累加。 快速扫榜、接口失败时的兜底。
详情页精确模式 逐只股票详情页,总合计行累加。 多条上榜原因累加,细节最接近人工核验。 重点复盘、抽样校验、口径核对。
浏览器渲染模式 Edge/Chrome 渲染网页后取 DOM。 中慢 接近人眼看到的网页。 接口被挡、页面动态加载时兜底。
本次经验:第一次人工报告使用详情页累加,所以多氟多等多原因上榜股票金额更大;快速版使用首页净买额,所以同一股票金额可能不同。两者不是谁对谁错,而是口径不同。

六、推荐架构

日常自动化

建议的流水线

AkShare / API 主数据
        ↓
字段清洗与口径统一
        ↓
页面 JSON 或第二数据源校验
        ↓
生成 HTML / Markdown 报告
        ↓
发送邮件 / Webhook / 保存归档
        ↓
异常时报警并保存 debug 文件

七、选择建议

需求 首选方案 原因
每天定时发送龙虎榜日报 AkShare / API 速度快、结构化、稳定性高。
盘后快速扫榜 首页 JSON / AkShare 无需逐页抓详情,几秒到几十秒完成。
重点股票复盘 详情页抽样核验 能看到更细的席位和多原因上榜信息。
没有接口的网页数据 静态 HTML 或浏览器渲染 接口不可用时只能从页面层提取。
长期生产系统 官方 API / 付费数据源 合规、稳定、可追责。

八、落地注意事项