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

使用BeautifulSoup按条件从含重复元素的HTML提取球员与国籍数据

问题原因

原代码全局抓取所有带href的元素和所有flaggenrahmen类元素直接zip匹配,没有按行绑定单条球员数据,既会被球队链接等无关href干扰匹配关系,也没有处理同一名球员下多个国籍标签的跳过逻辑,导致对应关系错乱。

解决代码

from bs4 import BeautifulSoup
from collections import defaultdict

player_dict = defaultdict(list)
soup = BeautifulSoup(html, 'html.parser')
# 遍历每一行球员数据
for player_tr in soup.select('tbody tr'):
    # 提取当前行的球员姓名
    name_tag = player_tr.select_one('.spielprofil_tooltip')
    if not name_tag:
        continue
    player_name = name_tag.get_text(strip=True)
    # 提取当前行第一个国籍标签,后续重复的自动忽略
    nation_tag = player_tr.select_one('.flaggenrahmen')
    if nation_tag:
        player_dict[player_name].append(nation_tag['alt'])

# 转成普通字典输出和预期格式一致
print(dict(player_dict))

运行输出

{'Trent Alexander-Arnold': ['England'], 'Achraf Hakimi': ['Morocco'], 'João Cancelo': ['Portugal'], 'Reece James': ['England']}

内容的提问来源于stack exchange,提问作者me.limes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:08