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

在循环中使用Beautiful Soup批量获取英超球员页面URL的技术咨询

英超球员页面爬取脚本开发进度

我正在编写一段Python脚本,用来处理英超官网的球员页面数据,目前的开发情况如下:

核心目标

  • 从本地电子表格中读取包含400+足球运动员姓名的列表
  • 循环遍历每个姓名,通过Beautiful Soup在英超官网球员列表页中定位对应球员的个人页面链接(示例格式:https://www.premierleague.com/players/4040/Benik-Afobe/overview)
  • 后续计划基于获取到的链接,进一步爬取球员的详细数据

当前脚本结构(未完成版)

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 读取电子表格中的球员姓名列表
player_names = pd.read_excel("players_list.xlsx")["PlayerName"].tolist()

# 英超官网球员列表基础URL
base_player_page = "https://www.premierleague.com/players"
collected_links = []

for player_name in player_names:
    # 发送请求获取页面内容
    response = requests.get(base_player_page)
    soup = BeautifulSoup(response.text, "html.parser")
    
    # 这里需要根据页面实际DOM结构优化匹配逻辑,示例为模糊姓名匹配
    player_anchor = soup.find(
        "a", 
        text=lambda text: text and player_name.lower() in text.lower()
    )
    
    if player_anchor:
        # 拼接完整的球员个人页面链接
        full_player_link = f"https://www.premierleague.com{player_anchor['href']}"
        collected_links.append(full_player_link)
        print(f"成功找到[{player_name}]的页面链接:{full_player_link}")
    else:
        print(f"未找到[{player_name}]的对应页面")

# 后续处理模块(暂未实现,处于注释状态)
# TODO: 遍历已收集的链接,爬取球员详细数据
# for link in collected_links:
#     # 此处添加详细数据提取逻辑
#     pass

待优化/待完成事项

  • 页面动态加载问题:目前用requests直接获取的页面可能不包含全部球员数据,后续可能需要改用Selenium或者分析网站的API接口来获取完整内容
  • 姓名匹配精度:需要处理姓名大小写、中间名、拼写变体等情况,避免误匹配或漏匹配
  • 反爬策略:频繁请求可能触发网站的反爬机制,需要添加请求头、设置请求延时,必要时使用代理IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:14:51