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

网页爬取无法遍历整页:仅获取首位球员信息求助

解决FIFA Index球员数据爬取仅获取首位球员的问题

你的问题出在选择器范围和查找方法上:

  • soup.find_all('div', class_="responsive-table table-rounded")只会返回一个包含整个球员表格的容器div
  • 在这个容器里调用find()方法,只会返回第一个匹配的评分和姓名元素,自然只能拿到首位球员的数据

修正后的代码

from bs4 import BeautifulSoup
import requests

url = "https://www.fifaindex.com/players/?gender=0&league=1&order=desc"

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

# 定位到表格的tbody,所有球员数据行都在这里
player_rows = soup.select("div.responsive-table table tbody tr")

for row in player_rows:
    # 在当前行内查找评分元素
    rating_elem = row.find("span", class_="badge badge-dark rating")
    # 在当前行内查找球员姓名链接
    name_elem = row.find("a", class_="link-player")
    
    if rating_elem and name_elem:
        rating = rating_elem.text.strip()
        name = name_elem.text.strip()
        print([rating, name])

关键修改点

  • 用select("div.responsive-table table tbody tr")直接定位到每一行球员数据,而非整个表格容器
  • 遍历每一行,在当前行范围内查找对应的评分和姓名元素,确保每一行的数据都被正确提取
  • 增加了元素存在性判断,避免因页面结构异常导致的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:00:29