今天贡献一个小的技巧, 就是如何用Python下载Kaggle数据.
为什么要用Python下载Kaggle数据呢? 对于一些数据量比较小的比赛, 当然可以直接打开浏览器, 然后在Kaggle的比赛主页上直接点击链接下载数据. 但是对于某些数据很大的比赛, 我希望能通过命令行或者Python直接下载数据. 另外, 有的时候我希望直接在服务器上通过命令行下载数据 (服务器上没有浏览器).
如果你熟悉Linux的话, 你可能会想, 直接鼠标右键复制链接地址, 然后用wget下载链接不就行了. 如果你直接用这种方式下载Kaggle数据, 你会发现wget得到的是网页, 而不是数据. 我发现原来下载Kaggle数据需要先用自己的账户登录. 下面这段Python代码就是通过 Python登录Kaggle然后下载数据.
使用的时候, 先修改data_urls, 也就是把需要下载的Kaggle数据连接添加到这个数组里面, 可以通过在Kaggle比赛的主页上右键点击下载链接获得. 另外, 我个人习惯是在我自己的电脑上, 每个Kaggle比赛下面有0_Data和1_Code文件夹, 第一个用来存数据, 第二个用来放程序, 所以这个Python程序在1_Code里面运行的时候自动把数据存放到0_Data里面. 如果你的习惯和我不一样的话, 可以更改 f = open('../0_Data/'+local_filename, 'w') 这一句里面的文件路径.
假设你把这个程序存为download.py, 然后直接在命令行运行python download.py, 然后根据提示输入你Kaggle的用户名和密码, 然后就可以愉快的下载Kaggle数据啦.
import requests
import getpass
def download_and_unzip_data():
username = raw_input("Enter Kaggle username: ")
pwd = g