You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Colab下载Kaggle竞赛数据遇403错误的解决办法及替代方案

解决Colab中Kaggle LANL竞赛数据下载403 Forbidden问题及替代方案

一、核心原因:竞赛权限未获取

你遇到的403错误大概率是因为LANL-Earthquake-Prediction竞赛需要主动加入才能下载数据——很多Kaggle竞赛(尤其是带有规则或隐私限制的)要求用户先点击竞赛页面的「Join Competition」并同意条款,API才会授予数据下载权限。其他竞赛比如us-consumer-finance-complaints属于公开可下载类型,所以没有这个限制。

二、快速修复步骤

  1. 网页端加入竞赛
    打开Kaggle的LANL竞赛页面,登录你的账号,找到页面顶部的「Join Competition」按钮,点击后阅读并同意竞赛规则,完成加入流程。

  2. 验证权限并重新下载
    回到Colab,先运行命令确认你已加入竞赛:

    !kaggle competitions status -c LANL-Earthquake-Prediction
    

    如果输出显示Status: Joined,再重新执行下载命令:

    !kaggle competitions download -c LANL-Earthquake-Prediction
    
  3. 备选:刷新API Token
    如果还是报错,可能是你的kaggle.json权限未更新:

    • 去Kaggle的「Account」页面,点击「Create New API Token」,下载新的kaggle.json。
    • 在Colab中重新上传并替换旧文件:
      !mkdir -p ~/.kaggle/ && mv kaggle.json ~/.kaggle/ && chmod 600 ~/.kaggle/kaggle.json
      

    然后再次尝试下载。

三、Colab下载Kaggle数据的替代方法

如果API方式始终有问题,可以试试以下几种方案:

1. 手动下载+Google Drive挂载

  • 步骤1:在Kaggle网页端下载LANL竞赛数据的压缩包。
  • 步骤2:把压缩包上传到你的Google Drive。
  • 步骤3:在Colab中挂载Drive,直接读取数据:
    from google.colab import drive
    drive.mount('/content/drive')
    
    之后你就可以通过/content/drive/MyDrive/路径访问Drive里的竞赛数据,解压后即可使用。

2. 使用Kaggle Python API(代码式调用)

除了命令行,也可以用Python代码调用Kaggle API,有时能避开命令行的权限缓存问题:

!pip install kaggle --upgrade
from kaggle.api.kaggle_api_extended import KaggleApi

# 认证API
api = KaggleApi()
api.authenticate()

# 下载竞赛数据到指定目录
api.download_competition_files('LANL-Earthquake-Prediction', path='/content/lanl_data/')

# 解压文件(如果需要)
import zipfile
with zipfile.ZipFile('/content/lanl_data/LANL-Earthquake-Prediction.zip', 'r') as zip_ref:
    zip_ref.extractall('/content/lanl_data/')

3. Colab内置Kaggle集成

Colab提供了直接关联Kaggle账号的功能,无需手动上传kaggle.json:

  • 打开Colab,点击左侧菜单栏的「Files」→「Add-ons」→「Kaggle」。
  • 按照提示登录你的Kaggle账号,完成授权。
  • 之后就可以在Colab中直接搜索并导入LANL竞赛的数据,无需手动执行下载命令。

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

火山引擎 最新活动