使用R下载Kaggle指定数据集失败,求有效解决方案
Kaggle数据集下载失败的解决方法
直接使用download.file访问你提供的Kaggle下载链接会失败,原因是该URL需要登录Kaggle后的认证信息,未认证请求会被跳转到登录页面,无法获取实际数据集文件。以下是几种可行的解决方法:
方案一:使用Kaggle官方API(推荐,稳定可靠)
- 登录Kaggle账户,进入「Account」页面,点击「Create New API Token」下载
kaggle.json密钥文件。 - 安装并加载Kaggle R包:
install.packages("kaggle") library(kaggle)
- 配置API密钥:将
kaggle.json放在默认路径(Windows为C:/Users/你的用户名/.kaggle/,Linux/macOS为~/.kaggle/),或通过以下命令指定文件路径:
kaggle::kaggle_api_config(path = "你存放kaggle.json的路径")
- 执行下载命令(可自动解压):
kaggle::kaggle_dataset_download_files( dataset = "nelgiriyewithana/most-streamed-spotify-songs-2024", path = "./", unzip = TRUE )
方案二:手动获取带认证的临时下载链接
- 登录Kaggle后打开目标数据集页面,点击「Download」按钮,在浏览器中复制实际的下载链接(该链接包含临时认证参数,有效期较短)。
- 使用
download.file下载(注意添加mode = "wb"处理二进制文件):
# 替换为你复制的真实下载链接 actual_download_url <- "这里替换成浏览器复制的带认证的URL" download.file(url = actual_download_url, destfile = "spotify_2024_data.zip", mode = "wb") # 解压文件 unzip("spotify_2024_data.zip")
方案三:通过httr携带登录Cookie下载
- 登录Kaggle后,打开浏览器开发者工具(F12),在「Network」面板中找到任意Kaggle请求,复制其Cookie内容。
- 使用httr发送带Cookie的请求并保存文件:
library(httr) # 替换为你的Kaggle登录Cookie kaggle_cookie <- "这里替换成获取到的Cookie内容" response <- GET( url = "https://www.kaggle.com/datasets/nelgiriyewithana/most-streamed-spotify-songs-2024/download", add_headers(Cookie = kaggle_cookie) ) # 保存响应为zip文件 writeBin(content(response, "raw"), "spotify_2024_data.zip") # 解压文件 unzip("spotify_2024_data.zip")
注:Cookie有效期有限,过期后需要重新获取。
内容的提问来源于stack exchange,提问作者Gambit
相关产品推荐
相关产品推荐

