许多朋友在腾讯体育收看 NBA 比赛,我也一样。看球赛的同时,我们会想着了解球队的战绩,球员的资料,比如“湖人”队数据:联盟对比,球队数据王,赛季数据等。
在球队数据王模块,我发现了宝藏:球员的定妆照,比仅一个脑袋的头像好看多了。

查看照片网址为:https://sports3.gtimg.com/playerPic/88699.png,这和东契奇的球员资料页网址:https://sports.qq.com/kbsweb/players.htm?pid=88699,其中最后的数字是一致的,这就是 NBA 球员在腾讯体育的 ID 。
因此,我们可以通过获得球员的 ID 替换东契奇照片网址中的 ID ,来获得该球员的定妆照。比如,东契厅的 ID 是88699,詹姆斯的 ID 是 88608。
我就在想,腾讯体育中应该有所有 NBA 球员的定妆照,我是否可以批量下载呢?答案是肯定的,有个下载软件就能批量下载,只有知道起始ID 和终止ID 就行。好奇的我,耐心地排查了一下,至少在 88521~89245 之间。
现在基本不用专门的下载软件了,偶尔下载个资源,我都直接用浏览器的下载器,直接保存就行了。现在要批量下载怎么办呢?还是问下万能的 DeepSeek 吧。
我用的是统信 UOS 系统,DeepSeek 说可以使用 Python 的 requests 库配合循环来实现批量下载,并给出了完整的解决方案:
1、首先检查 Python 是否已安装,打开终端,键入:
python3 --version
显示 Python 版本(如 Python 3.7.3),说明已安装。如果没有安装,可以使用以下命令安装:
sudo apt update
sudo apt install python3 python3-pip
2、安装 requests 库
pip3 install requests
结果报错:bash: pip3:未找到命令。那我们首先要安装 pip3,按提示回答 Y 即可。
# 更新软件包列表
sudo apt update# 安装 python3-pip
sudo apt install python3-pip
3、创建 Python 脚本文件
-
打开 UOS 的文本编辑器
-
复制 Python 代码到编辑器中
-
点击“保存”,文件名输入
download_images.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-import requests
import os
import sys
from concurrent.futures import ThreadPoolExecutor, as_completeddef show_progress(current, total):
"""显示进度条"""
percentage = (current / total) * 100
bar_length = 50
filled_length = int(bar_length * current // total)
bar = '█' * filled_length + '░' * (bar_length - filled_length)
sys.stdout.write(f'\r进度: |{bar}| {current}/{total} ({percentage:.1f}%)')
sys.stdout.flush()def download_image(player_id):
"""下载单个图片"""
url = f"https://sports3.gtimg.com/playerPic/{player_id}.png"try:
# UOS 系统可能需要更长的超时时间
response = requests.get(url, timeout=15, headers={
'User-Agent': 'Mozilla/5.0 (X11; UOS) AppleWebKit/537.36'
})if response.status_code == 200:
content_type = response.headers.get('content-type', '')
if 'image' in content_type and response.content:
filename = f"playerPic_{player_id}.png"
with open(filename, 'wb') as f:
f.write(response.content)
return True, player_id
else:
return False, f"{player_id}: 不是图片文件"
else:
return False, f"{player_id}: HTTP {response.status_code}"except requests.exceptions.Timeout:
return False, f"{player_id}: 请求超时"
except Exception as e:
return False, f"{player_id}: {str(e)}"def main():
print("=" * 60)
print("统信 UOS 批量图片下载工具")
print("=" * 60)# 创建保存目录
save_dir = "球员图片"
if not os.path.exists(save_dir):
os.makedirs(save_dir)# 切换到保存目录
original_dir = os.getcwd()
os.chdir(save_dir)# 设置下载范围
start_id = 88521
end_id = 89245
total = end_id - start_id + 1print(f"📁 保存到: {os.path.join(original_dir, save_dir)}")
print(f"📥 下载范围: {start_id} 到 {end_id}")
print(f"📊 总数量: {total} 张图片")
print("-" * 60)successful = 0
failed_list = []# 使用线程池(统信 UOS 建议用较小的线程数)
with ThreadPoolExecutor(max_workers=3) as executor:
# 提交所有任务
future_to_id = {
executor.submit(download_image, player_id): player_id
for player_id in range(start_id, end_id + 1)
}# 处理结果
completed = 0
for future in as_completed(future_to_id):
completed += 1
player_id = future_to_id[future]try:
success, result = future.result()
if success:
successful += 1
else:
failed_list.append(result)
except Exception:
failed_list.append(f"{player_id}: 未知错误")# 显示进度
show_progress(completed, total)print("\n" + "=" * 60)
print("🎉 下载完成!")
print(f"✅ 成功下载: {successful} 张")
print(f"❌ 失败数量: {len(failed_list)} 张")if failed_list:
print("\n失败列表(前10项):")
for fail in failed_list[:10]:
print(f" {fail}")
if len(failed_list) > 10:
print(f" ... 还有 {len(failed_list)-10} 个失败项")print(f"\n💾 图片保存在:{os.path.abspath('.')}")
print("=" * 60)# 返回原目录
os.chdir(original_dir)if __name__ == "__main__":
try:
main()
input("\n按 Enter 键退出...")
except KeyboardInterrupt:
print("\n\n⚠️ 用户中断下载")
except Exception as e:
print(f"\n❌ 程序出错: {e}")
input("按 Enter 键退出...")
4、运行脚本
在脚本文件所在文件夹中打开终端,执行:
# 给脚本添加执行权限
chmod +x download_images.py# 运行脚本
python3 download_images.py
脚本顺利运行,并有进度条显示下载完成情况,最后是有95个失效项,结束后按 Enter 键退出,照片就下载到了电脑 - 图片 - 球员图片文件夹里了。

5、创建桌面快捷方式(可选)
如果你想创建桌面图标来运行脚本:
-
在桌面右键选择"新建文件" → "文本文件"
-
命名为
下载图片.desktop -
内容如下,注意修改脚本文件的路径:
-
保存后,右键该文件 → "属性" → "权限" → 勾选"允许以程序执行文件"
今天会想到写这篇博文,主要是之前虽然知道 Python 很强大,但一直觉得它很神秘,不知道该如何去操作,这番实践下来,原来只要制定一个脚本,统信 UOS 终端中就能运行,这就给自己打开了思路,以后有什么需求,比如下个电影资源一类的,就能按图索翼去操作了。










暂无评论