请求FIBA赛事数据JSON文件遇403禁止错误,求解决方法
解决FIBA赛事data.json采集的403禁止访问问题
补全浏览器请求头:网站会通过请求头识别请求来源,常规库请求因缺少浏览器标识被拦截。需要在请求中添加和Chrome一致的
User-Agent,同时带上Referer字段(值为主页面URL),示例请求头如下: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", "Referer": "https://fibalivestats.dcd.shared.geniussports.com/u/LEGBF/2213178/" }携带会话Cookie:手动访问页面时,浏览器会存储网站生成的会话Cookie,这些Cookie是服务器验证请求合法性的关键。可以通过Chrome DevTools的「网络」面板找到data.json请求的Cookie信息,将其添加到请求中。比如用requests时:
cookies = {"cookie_key": "cookie_value", ...} # 替换为实际的Cookie键值对 response = requests.get("https://fibalivestats.dcd.shared.geniussports.com/u/LEGBF/2213178/data.json", headers=headers, cookies=cookies)使用浏览器自动化工具:如果请求头和Cookie的组合仍无法绕过拦截,直接用Selenium或Playwright模拟真实浏览器操作。这类工具会完全复刻手动打开页面、刷新的流程,自动处理Cookie和请求头,示例代码(Selenium):
from selenium import webdriver import time driver = webdriver.Chrome() # 打开主页面触发会话建立 driver.get("https://fibalivestats.dcd.shared.geniussports.com/u/LEGBF/2213178/") time.sleep(3) # 等待页面加载完成 # 直接请求data.json driver.get("https://fibalivestats.dcd.shared.geniussports.com/u/LEGBF/2213178/data.json") json_data = driver.page_source driver.quit()添加AJAX请求标识:部分网站会检查
X-Requested-With字段,验证是否为AJAX请求。可以在请求头中添加"X-Requested-With": "XMLHttpRequest",进一步模拟浏览器的AJAX请求行为。
内容的提问来源于stack exchange,提问作者Michele Scattola
相关产品推荐
相关产品推荐

