基本上翻遍了国内论坛都没有相关解决方法,但在外网找到了,故翻译一下并且结合自身感想写一篇文章帮助有类似问题的朋友,如果觉得不错,还请点个赞,谢啦!
本次着重解决的问题是: 在远端Linux服务器上如何“使用 Kaggle API 下载”比赛中的部分文件夹数据
重点在于:文件夹,而不是其中的文件
我们知道如果本地要下载Kaggle比赛数据可以直接点击网页上的 Download All 进行下载
或者使用Kaggle API
直接远程下载到服务器上
如此大的数据,一般我们也不会选择在自己的电脑上面跑,
自然而然,也就只能使用Kaggle API进行数据的下载
如果你不知道如何配置Kaggle API 推荐两篇文章:
1.Kaggle数据集下载详细步骤及注意事项
2.Kaggle官方说明文书
但如上图所示,数据量太大了,且存在老数据,那我们可否只下载其中的test和train呢?
就官方渠道而言用Kaggle API是不可以的,因为官方文档明确说明只能下载其中的文件
而文件夹不属于文件
国内外就有些朋友想到用for循环将文件夹中的文件一个个下载下来
但这样存在两个问题
1.一般数据量很大,高频次的请求下载一个个文件会受到kaggle的拒绝
2.即使下载下来了,一个个解压整理也要花费大量时间
难道就没有办法解决了吗?
有,但不是用Kaggle API
而是使用wget
我们知道wget可以远程下载指定连接的文件
但kaggle为了防止被人恶意攻击,自然是不能直接使用的
Kaggle API都需要个人的json才能使用
那么我们如何向Kaggle证明我们是用户而不是恶意攻击者呢?
用插件!
这是Md Mofijul (Akash) Islam提出的解决方法
通过使用CurlWget Chrome 插件
然后在网页端点击需要下载的文件夹后迅速点击此插件,然后复制粘贴指令到命令行即可
亲测可用!