3行代码拉取NBA官方数据:nba_api实战指南 3行代码拉取NBA官方数据nba_api实战指南【免费下载链接】nba_apiAn API Client package to access the APIs for NBA.com项目地址: https://gitcode.com/gh_mirrors/nb/nba_apinba_api 是 NBA.com 官方 API 的 Python 客户端一条 pip 命令装好之后球员生涯统计、球队比赛日志、实时比分板都能直接拿到手还能转成 pandas DataFrame。你不用再手写请求 URL、翻 JSON 字段找数据。项目能做什么它的核心是把 NBA.com 官网背后的数据接口封装成了 Python 类浏览器 Network 面板里能看到的统计表这里基本都能拉到。几个典型用法查一个球员的生涯数据只要球员 ID返回所有赛季、所有球队的完整统计追踪一整个赛季的胜负球队比赛日志一次调用每场的日期、对手、胜负、各项数据全在一行里看今天的比赛实况实时比分板返回进行中的比赛、当前比分、节次和双方数据王目前 src/nba_api/stats/endpoints/ 下有 100 多个端点类覆盖球员、球队、联盟、单场明细这几大类。3分钟跑通第一个查询先安装pandas 是转 DataFrame 用的建议一起装上pip install nba_api pandas然后调一个端点试试from nba_api.stats.endpoints import playercareerstats career playercareerstats.PlayerCareerStats(player_id203999) df career.get_data_frames()[0] print(df[[GP, PTS]].head()) # 约基奇的生涯出场与得分如果看到带 GP出场数、PTS得分的表格说明装好了。player_id 是 NBA 官方 ID怎么查下面坑指南里会讲。核心功能体验按球员ID拉生涯数据场景想横向对比两个球员的生涯轨迹。调用PlayerCareerStats必填参数只有 player_id其余都有默认值。输出get_data_frames()返回一个 DataFrame 列表第一个就是生涯汇总表含赛季、球队、出场、得分、篮板、助攻等列。career playercareerstats.PlayerCareerStats(player_id2544) career.get_data_frames()[0]查球队一个赛季的胜负场景追踪一支球队整季的战绩起伏和得分走势。调用TeamGameLog传球队 ID 和赛季即可。输出一场比赛一行WL 列标胜负W/L 是滚动战绩还有对手和球队各项技术统计。from nba_api.stats.endpoints import teamgamelog log teamgamelog.TeamGameLog(team_id1610612747, season2022-23) df log.get_data_frames()[0] print(len(df[df[WL] W]), len(df[df[WL] L]))拿今天的实时比分板场景想知道现在有哪些比赛、比分多少、谁在砍高分。调用ScoreBoard不需要任何必填参数。输出get_dict()里的 scoreboard 结构包含每场游戏的 gameId、状态、主客队实时比分还有单场得分/篮板/助攻领跑者。from nba_api.live.nba.endpoints import scoreboard board scoreboard.ScoreBoard().get_dict() print(board[scoreboard][games][0][gameStatusText])每个端点的返回都能按需切换格式get_json()拿原始 JSON、get_dict()拿字典、get_data_frames()拿 DataFrame用哪个阶段就切哪个。踩坑指南与提速技巧遇到不知道球员、球队 ID的情况别去网上搜包里的静态数据就能查from nba_api.stats.static import players, teams players.find_players_by_full_name(james) # 支持正则、不区分大小写 teams.find_teams_by_full_name(Lakers)这些数据内嵌在包里查询不发任何网络请求也是新手最常用的功能。⚠️ 遇到请求频繁被拒或超时说明打得有点猛。官方没有公开的限速文档稳妥做法是请求之间隔几秒失败按退避重试。像生涯统计这种不常变的数据拉一次落盘缓存CSV 或 pickle之后增量更新就行。要批量拉多个球员的数据用线程池并发但线程数压低一点避免被限from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor(max_workers3) as ex: dfs list(ex.map(lambda pid: playercareerstats.PlayerCareerStats( player_idpid).get_data_frames()[0], player_ids))如果网络环境需要走代理每个端点的构造函数都接收proxy、headers、timeout参数不用自己改 HTTP 层docs/nba_api/stats/examples.md里有完整示例。下一步各端点的参数说明和返回结构在 docs/nba_api/stats/endpoints/Jupyter 格式的动手示例在 docs/examples/。想给项目补新端点的话先看tools/里的生成器工具和CONTRIBUTING.md的贡献流程照着现有端点仿写一个新类就行。【免费下载链接】nba_apiAn API Client package to access the APIs for NBA.com项目地址: https://gitcode.com/gh_mirrors/nb/nba_api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考