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

如何绕过PrizePick API爬取时出现的403错误?

解决Prizepicks API 403禁止访问问题

403错误一般是服务器拒绝了请求,核心原因大概率是请求头不完整、请求参数传递方式不符合API要求导致的,以下是可行的修复方案:

1. 修正请求参数传递方式

GET请求的参数必须通过params参数传递,原代码里用data传递GET参数是错误的(data仅用于POST请求提交表单数据)。

2. 添加必要的请求头

模拟浏览器的请求头,让服务器识别为合法的用户请求,至少需要补充User-Agent、Accept等关键字段。

修改后的完整代码:

import pandas as pd
import requests
from pandas.io.json import json_normalize

params = (
    ('league_id', '7'),
    ('per_page', '250'),
    ('projection_type_id', '1'),
    ('single_stat', 'true'),
)

# 模拟浏览器标准请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'en-US,en;q=0.9',
}

session = requests.Session() 
# 用params传递GET参数,同时携带请求头
response = session.get('https://api.prizepicks.com/projections', params=params, headers=headers)
print(response.status_code)

if response.status_code == 200:
    df1 = json_normalize(response.json()['included'])
    df1 = df1[df1['type'] == 'new_player']

    df2 = json_normalize(response.json()['data'])

    df = pd.DataFrame(zip(df1['attributes.name'], df2['attributes.line_score']), columns=['name', 'points'])
    print(df.head())

额外注意事项

  • 如果还是返回403,可通过浏览器开发者工具查看正常请求的完整头信息,补充Referer、Origin等字段
  • 避免短时间内频繁发送请求,防止IP被服务器封禁
  • 务必遵守Prizepicks的服务条款,未经授权爬取数据可能涉及法律风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:11:07