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

Python requests调用NBA Stats API失败但curl请求正常的问题排查

解决NBA Stats API请求在Python requests中失败的问题

我一眼就发现你的curl请求和Python代码里的请求存在几个关键差异,正是这些细节导致了连接重置的错误,咱们一步步来修复:

1. URL里的转义字符坑

你的Python代码URL里用了&(这是HTML里对&的转义写法),但HTTP请求的参数分隔符应该直接用&。curl会自动帮你处理这种转义字符,可requests会原封不动把&发出去,服务器根本没法正确解析参数,自然就拒绝连接了。

修复方式:把URL里所有的&全部替换成&。

2. 请求头的格式错误

你的请求头里有两处格式问题,这也是服务器不认的原因:

  • Accept-Language字段:你写的是'en-USen;q=0.5',正确格式应该是'en-US,en;q=0.5'(语言选项之间需要用逗号分隔)。
  • Accept-Encoding字段:你用空格分隔了编码类型,HTTP规范里要求用逗号,改成'gzip, deflate, br'才行。

另外补充下,Accept字段你原来的写法也缺了逗号,最好改成'application/json, text/plain, */*',保持格式一致。

3. 可选优化:用Session保持会话

NBA的Stats API有时候会校验会话一致性,用requests的Session对象模拟浏览器的会话状态,能提升请求的成功率。

修复后的完整代码

import requests

# 修复URL,替换所有&为&
url = "https://stats.nba.com/stats/playerdashboardbygeneralsplits?PlayerID=1628369&TeamID=0&MeasureType=Base&PerMode=PerGame&PlusMinus=N&PaceAdjust=N&Rank=N&LeagueID=00&Season=2020-21&SeasonType=Regular+Season&PORound=0&Outcome=&Location=&Month=0&SeasonSegment=&DateFrom=&DateTo=&OpponentTeamID=0&VsConference=&VsDivision=&GameSegment=&Period=0&ShotClockRange=&LastNGames=0"

headers = {
    'Host': 'stats.nba.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'en-US,en;q=0.5',
    'Referer': 'https://stats.nba.com/',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'x-nba-stats-origin': 'stats',
    'x-nba-stats-token': 'true'
}

# 使用Session发送请求,模拟浏览器会话
session = requests.Session()
response = session.get(url, headers=headers)

# 验证结果
print(response.status_code)
print(response.json())

为啥curl成功而requests失败?

curl在处理请求时会做很多兼容处理,比如自动解析HTML转义字符、宽容对待请求头的格式小错误。但requests库更严格遵循HTTP规范,你写啥它就发啥,这些看似细微的格式问题,到了服务器那边就成了拒绝连接的理由,最终引发ConnectionResetError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:02:50