You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从fbref.com通过ID提取隐藏表格?stats_gca提取失败求助

解决fbref.com中stats_gca表格提取失败的问题

问题原因

fbref网站里,stats_gca这类球员级数据表格默认处于折叠状态,页面源码中它被包裹在HTML注释(<!-- ... -->)里。BeautifulSoup默认不会解析注释内部的HTML结构,所以直接用soup.find('table', {'id': 'stats_gca'})会返回None,导致后续代码报错。而stats_squads_gca_for是球队级默认展开的表格,不在注释范围内,因此能正常提取。

解决方法

先从响应内容中提取包裹目标表格的注释块,再将注释内的内容作为HTML解析,之后就能正常定位到目标表格。

修改后的代码:

import requests
import pandas as pd
from bs4 import BeautifulSoup, Comment

url = "https://fbref.com/it/comp/11/gca/Statistiche-di-Serie-A#all_stats_gca"

response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# 筛选包含stats_gca表格的注释块
comment = soup.find(string=lambda text: isinstance(text, Comment) and 'stats_gca' in text)
# 解析注释中的HTML内容
comment_soup = BeautifulSoup(comment, 'html.parser')
# 提取目标表格
table = comment_soup.find('table', {'id': 'stats_gca'})

df = pd.read_html(str(table))[0]
print(df.head())

补充说明

  • 利用Comment类识别HTML注释,通过lambda函数精准筛选包含目标表格ID的注释内容
  • 解析注释后,后续提取表格、转成DataFrame的操作和处理普通表格完全一致
  • 该方法适用于fbref所有默认折叠的球员数据表格(比如stats_shooting、stats_passing等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:33:18