本文详解当网页源码不包含浏览器所见内容时(如 valencia 马拉松成绩页),如何通过定位 iframe 源地址、结合 requests + beautifulsoup + pandas 快速提取结构化表格数据,避开 selenium 的高开销。
当你在浏览器中右键查看“查看页面源代码”(View Page Source)却找不到页面上清晰显示的运动员姓名、完赛时间等关键数据时,这通常意味着该内容并非静态 HTML 内置,而是由 JavaScript 动态渲染,或——更常见且更易处理的情况——数据实际来自嵌套的 。Valencia 马拉松官网正是典型例子:主页面仅作为容器,真实排行榜位于 iframe 的独立 URL 中。
幸运的是,这类场景往往无需启动浏览器自动化工具(如 Selenium)。只要定位到 iframe 的 src 属性指向的真实数据页 URL,即可直接用轻量级 HTTP 请求获取其 HTML,并用标准解析库提取内容。
以修正后的目标 URL 为例:
https://resultados.valenciaciudaddelrunning.com/en/2021/maraton.php?y=2021
该页面中,成绩表格被包裹在具有 ID tabPodium 的