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

Python发送GET请求返回不明403错误 浏览器可正常访问

问题原因与修复方案

  1. 首先修正requests.get的传参错误:你当前把headers作为第二个位置参数传入,requests第二个位置参数对应的是请求参数params,而非请求头,需要显式指定headers=headers才能让自定义请求头生效。
  2. 补充缺失的校验请求头:该站点会校验Accept、Accept-Encoding、Accept-Language等请求头,仅传Host和User-Agent无法通过校验,需要把浏览器里的核心请求头补充完整。

修改后可正常运行的代码如下:

import requests

url = 'https://i7.sportsdatabase.com/nba/query.json?sdql=50+%3C+Kobe+Bryant%3Apoints+and+site%3Daway&sport=nba'

headers = {
    'Host': 'i7.sportsdatabase.com',
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"',
    'sec-ch-ua-mobile': '?0',
    'DNT': '1',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Sec-Fetch-Site': 'none',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-User': '?1',
    'Sec-Fetch-Dest': 'document',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en,en-US;q=0.9,it;q=0.8,es;q=0.7',
}

r = requests.get(url, headers=headers)
# 确认请求成功
print(r.status_code)
print(r.json())

补充说明:浏览器请求头里的If-None-Match是缓存校验字段,非必填,无需添加也能正常请求,加了反而可能因为缓存命中返回304状态码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:57:03