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

Python爬虫提取的运动员身高数据如何正确追加到列表中?

代码问题分析

  • height_list.append() 语句放在了for循环外部,只会在循环结束后执行1次,添加的是循环最后一次迭代的i对应的身高值,是列表数据异常的核心原因。
  • for循环内部用大括号包裹代码是错误写法,Python的代码块靠缩进区分,你写的大括号属于无用冗余代码,也导致追加操作没有被纳入循环执行逻辑。
  • 身高数据重复是因为页面同时渲染了桌面端、移动端两套 roster 节点,所以find_all会抓到46个身高节点,取前23条的逻辑是可行的。

修正后代码

import requests
from bs4 import BeautifulSoup

url = 'https://athletics.baruch.cuny.edu/sports/mens-swimming-and-diving/roster'

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

# 创建空列表分别存储以英寸为单位的身高和原始爬取身高
height_inches = []
height_list = []

heights = soup.find_all('span', class_= "sidearm-roster-player-height")

# 直接取前23条有效身高,避免重复数据
for i in range(23):
    height_text = heights[i].get_text()
    print(height_text)
    # 追加操作放到循环内部,每次迭代都添加当前身高
    height_list.append(height_text)

print(height_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:06