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

Python Selenium爬虫:如何按联赛分类存储抓取的球员数据?

解决按联赛分类存储球员数据的问题

核心思路

先初始化一个以联赛名为键、空列表为值的字典,在循环遍历每个联赛时,把抓取到的该联赛球员数据追加到对应键的列表里即可。

具体代码示例

# 假设你已经生成了包含联赛名称的allLeagues列表
allLeagues = ["英超", "西甲", "德甲"]

# 初始化字典:每个联赛对应一个空的球员列表
league_players_dict = {league: [] for league in allLeagues}

# 循环遍历每个联赛
for league_name in allLeagues:
    # ----------------------
    # 这里放你的Selenium操作代码:
    # 1. 切换到当前联赛的页面
    # 2. 抓取该联赛的所有球员数据,存到current_league_players列表中
    # 示例:假设抓取到的球员数据是字典格式的列表
    current_league_players = [
        {"姓名": "张三", "位置": "前锋"},
        {"姓名": "李四", "位置": "中场"}
    ]
    # ----------------------
    
    # 将当前联赛的球员数据追加到字典对应列表
    # 如果是分页多次抓取,用extend();如果一次性抓完所有球员,也可以直接赋值 = current_league_players
    league_players_dict[league_name].extend(current_league_players)

# 打印最终结果,验证每个联赛的球员数据
for league, players in league_players_dict.items():
    print(f"【{league}】球员数据:")
    for player in players:
        print(player)
    print("-" * 30)

关键细节说明

  • 字典初始化:用字典推导式{league: [] for league in allLeagues}可以快速给每个联赛创建对应的空列表,避免后续追加数据时出现KeyError。
  • 数据追加方式:
    • 如果current_league_players是球员列表,用extend()把列表里的每个球员元素添加到字典的列表中;
    • 如果每次只抓取到单个球员字典,用append()添加。
  • 打印验证:不要在循环里每次都打印整个字典,建议循环结束后统一遍历字典打印,或者在循环内只打印当前联赛的抓取状态(比如print(f"已完成{league_name}的球员抓取,共{len(current_league_players)}人")),这样输出更清晰,也能确认每一步是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:55:00