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

R语言中无法打开Kaggle数据集下载URL(网页可正常访问)

解决Kaggle数据集直接加载的报错问题

问题描述

尝试无需本地下载直接从Kaggle加载数据集,编写了如下R代码:

library(httr)
dataset <- httr::GET("https://www.kaggle.com/datasets/fedesoriano/heart-failure-prediction/download/", 
                 httr::authenticate("kguliani", authkey, type = "basic"))
# destination file 
temp <- tempfile()
download.file(dataset$url,temp)
data <- read.csv(unz(temp, "heart.csv"))
unlink(temp)
head(data)

运行时持续报错:

Error in download.file(dataset$url, temp): cannot open URL 'https://www.kaggle.com/datasets/fedesoriano/heart-failure-prediction/download'

该URL在网页中可正常下载包含heart.csv的archive.zip文件,但代码中无法访问。

问题原因

  • Kaggle的下载URL是临时重定向链接,浏览器访问时会自动跳转至真实资源地址,但download.file默认不跟随重定向,直接访问原URL会失败。
  • httr::GET请求后返回的dataset$url仍是原请求地址,没有提取到认证后重定向的真实下载链接,导致后续下载无效。

解决方案

方案1:修改现有代码,复用认证会话并获取真实资源

library(httr)

# 创建会话并完成认证,保存状态
session <- httr::handle("https://www.kaggle.com")
httr::GET("https://www.kaggle.com", handle = session, 
          httr::authenticate("你的Kaggle用户名", "你的Kaggle API密钥", type = "basic"))

# 发送请求并跟随重定向,获取真实下载内容
resp <- httr::GET("https://www.kaggle.com/datasets/fedesoriano/heart-failure-prediction/download/", 
                  handle = session, followlocation = TRUE)

# 写入临时文件并读取数据
temp <- tempfile(fileext = ".zip")
writeBin(resp$content, temp)
data <- read.csv(unz(temp, "heart.csv"))
unlink(temp)

head(data)

方案2:使用Kaggle官方R包(更稳定)

官方包封装了认证和下载逻辑,操作更简便:

  1. 安装包:
install.packages("kaggle")
  1. 配置API密钥:将Kaggle账号的kaggle.json文件放置在对应目录(Windows:C:\Users\<你的用户名>\.kaggle\;Linux/macOS:~/.kaggle/)
  2. 加载数据集:
library(kaggle)

# 下载并自动解压数据集到临时目录
kaggle::dataset_download_files("fedesoriano/heart-failure-prediction", path = tempdir(), unzip = TRUE)

# 读取数据
data <- read.csv(file.path(tempdir(), "heart.csv"))
head(data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:26:13