You need to enable JavaScript to run this app. 如何用Python爬取Trading212带显示全部按钮的全股票表格
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python爬取Trading212带显示全部按钮的全股票表格

爬取目标表格的核心问题排查与解决

为什么你找不到目标表格的class属性

Trading212的目标页面属于前端动态渲染架构,有两个很容易踩坑的点:

  • 页面DOM元素的class名带有前端框架自动生成的哈希后缀,每次前端版本迭代就会变更,没有固定的、可以硬编码匹配的稳定class值,硬找固定class的思路本身就不具备长期稳定性
  • 你通过requests拿到的初始页面源码里,根本不存在“点击Show all”之后的完整表格DOM节点——初始HTML里的表格只是服务端预渲染的前几行占位内容,不是全量数据的载体

为什么你只能拿到未展开的部分行数据

这个现象的本质非常直接:页面上的“Show all”按钮点击逻辑,不是把藏在HTML里的隐藏行显示出来,而是前端触发了异步数据请求,等接口返回全量股票列表数据后,再重新把所有行渲染到表格DOM里。
说白了,你现在手里的requests响应内容,压根没有包含全量表格的节点,不管你怎么调整BeautifulSoup的匹配规则,都不可能从这份静态源码里扒到展开后的完整内容。

可落地的解决路径

路径1:直接对接背后的数据接口(性能最优,适配现有技术栈)

  • 打开浏览器的开发者工具,切换到网络请求面板,筛选XHR类型的请求,手动点击页面上的“Show all”按钮,捕获返回全量股票列表的接口请求
  • 摸清该接口的请求头、请求参数(尤其是分页相关的参数,把单页返回条数调整到最大,避免数据被分页拆分),直接用现有的requests逻辑请求这个接口,拿到的JSON数据可以直接用pandas转成规整的表格,不需要再花精力解析HTML

路径2:用浏览器自动化完成交互后再解析

如果不想逆向接口的参数、签名逻辑,可以替换当前的静态请求逻辑:

  • 用Playwright、Selenium这类自动化工具加载目标页面,等页面加载完成后自动定位“Show all”按钮触发点击,等待全量表格渲染完成
  • 把自动化工具拿到的、已经渲染完成的页面源码,丢给你现有的BeautifulSoup解析逻辑,不需要大改已经写好的解析代码
  • 定位表格的时候,可以绕开不稳定的class匹配逻辑:先找到包含“ALL EQUITIES”文本的标题节点,顺着DOM树向下遍历找到相邻的table元素,比硬猜class名的成功率高很多

注意:纯requests拿静态源码的思路,从根上就拿不到点击Show all后的全量数据,不要在这个方向死磕调整匹配规则。

内容的提问来源于stack exchange,提问作者user3568896

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 10:45:07