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

本地Jupyter使用requests下载Kaggle数据集异常求助

解决Kaggle数据集下载返回HTML而非压缩包的问题

问题根源

  1. 直接用requests.get()请求Kaggle下载链接时,没有携带Kaggle身份认证信息,会被重定向到登录页面,因此返回的是HTML文件而非压缩包。
  2. 你把kaggle.json放在了项目目录下,但Kaggle API默认读取用户主目录下的.kaggle文件夹,而非项目目录,导致认证无效。

解决步骤

1. 调整kaggle.json的位置(必做)

把.kaggle文件夹移动到用户主目录:

  • Windows:C:\Users\<你的用户名>\.kaggle\kaggle.json
  • macOS/Linux:~/.kaggle/kaggle.json

如果一定要放在项目目录,需手动设置环境变量指定配置路径:

import os
os.environ['KAGGLE_CONFIG_DIR'] = './.kaggle'

2. 使用Kaggle API下载(推荐方式)

先安装Kaggle库:

pip install kaggle

在Jupyter中执行以下代码下载数据集:

from kaggle.api.kaggle_api_extended import KaggleApi

# 初始化并认证API
api = KaggleApi()
api.authenticate()

# 下载指定版本的数据集,保存为压缩包
api.dataset_download_files('birdy654/cifake-real-and-ai-generated-synthetic-images', version=3)

如果需要直接下载完整压缩包(不自动解压),可以用:

api.dataset_download_file('birdy654/cifake-real-and-ai-generated-synthetic-images', version=3)

3. 手动用requests认证下载(复杂易出错,不推荐)

如果坚持用requests,需要在请求头中带上Kaggle API密钥,且使用API专属下载地址:

import requests
import json

# 读取本地kaggle.json中的密钥
with open('./.kaggle/kaggle.json', 'r') as f:
    creds = json.load(f)

headers = {
    'Authorization': f"Bearer {creds['key']}"
}

# 使用Kaggle API的下载地址,而非网页下载按钮链接
url = 'https://www.kaggle.com/api/v1/datasets/download/birdy654/cifake-real-and-ai-generated-synthetic-images?datasetVersionNumber=3'
response = requests.get(url, headers=headers)

with open('cifake-dataset.zip', 'wb') as f:
    f.write(response.content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:07:22