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

Python提取维基百科表格并关联对应球队名称生成DataFrame字典

解决方案

核心思路是结合页面结构解析关联国家名和对应表格,无需使用已废弃的维基专用库,具体实现如下:

依赖安装

pip install requests beautifulsoup4 pandas

实现代码

import requests
from bs4 import BeautifulSoup
import pandas as pd

squad_dict = {}
target_url = "https://en.wikipedia.org/wiki/UEFA_Euro_2016_squads"

# 拉取页面源码
response = requests.get(target_url)
response.encoding = "utf-8"
soup = BeautifulSoup(response.text, "html.parser")

# 遍历页面h3标签,该页所有国家队名称都存储在h3标签内
for h3_node in soup.find_all("h3"):
    country_node = h3_node.find("span", class_="mw-headline")
    # 跳过非国家名称的h3标签
    if not country_node:
        continue
    country_name = country_node.get_text(strip=True)
    # 获取该国家名下方首个阵容表格
    squad_table = h3_node.find_next_sibling("table", class_="wikitable")
    if not squad_table:
        continue
    # 转换表格为DataFrame存入字典
    squad_df = pd.read_html(str(squad_table))[0]
    squad_dict[country_name] = squad_df

结果说明

运行代码后得到的squad_dict就是你需要的格式,键为国家队名称,值为对应阵容的DataFrame。
原单用pandas.read_html仅能按顺序返回所有表格,无法关联上下文标题,通过BeautifulSoup先解析DOM结构匹配名称和表格的对应关系,即可解决这个问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 20:57:00