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

更换新电脑后爬取网站出现403 Error,求技术建议

解决403 Forbidden的爬虫问题

403错误是服务器明确拒绝了你的请求,和Python版本关系不大,主要是反爬机制拦截了请求,给你几个具体修复方向:

  • 补全请求头,模拟浏览器身份:默认requests.get()的请求头会暴露你是Python程序,服务器会直接拦截。至少要加User-Agent,最好补全常用的浏览器请求头。
  • 检查URL中的x-bwin-accessid参数:这个参数看起来是临时授权凭证,可能已经过期,你需要从目标网站的正常请求里重新抓取有效的accessid。
  • 控制请求频率:新电脑的IP可能没被服务器访问白名单识别,频繁请求容易触发拦截,建议加个小延时。

修改后的代码示例:

import requests
import time

URL = "https://sports.il.betmgm.com/cds-api/bettingoffer/fixture-view?x-bwin-accessid=ZTg4YWEwMTgtZTlhYy00MWRkLWIzYWYtZjMzODI5ZDE0Mjc5&lang=en-us&country=US&userCountry=US&subdivision=US-Illinois&offerMapping=All&scoreboardMode=Full&fixtureIds=14351210&state=Latest&includePrecreatedBetBuilder=true&supportVirtual=false&useRegionalisedConfiguration=true"

# 模拟Chrome浏览器的请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "en-US,en;q=0.9",
    "Referer": "https://sports.il.betmgm.com/"
}

# 加延时避免频繁请求
time.sleep(2)
response = requests.get(URL, headers=headers)
print(response.status_code)
print(response.text)

如果还是不行,你需要:

  • 用浏览器开发者工具(F12)抓取一次正常访问该接口的请求,对比你的请求头和浏览器的请求头,补全所有缺失的关键字段(比如Cookie,部分网站需要登录态或会话Cookie)。
  • 确认新电脑IP没有被网站封禁,直接用浏览器访问这个URL,看是否能正常打开。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 09:29:11