如何在终端下载CSV(SSH)?

时间:2013-10-18 15:48:17

标签: csv curl

我正在尝试从政府网站下载芝加哥犯罪统计数据(CSV格式)。这是下载链接:https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD,但只有在将其复制到浏览器并按Enter键时才有效。

我想知道如何在终端上下载csv文件?我可以使用:

curl -O https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD> Chicago.csv

我想将Chicago.csv保存到ssh上的当前工作目录。

2 个答案:

答案 0 :(得分:2)

你的命令有效,但是需要很长时间来“计算”文件,这是巨大的(5360469行,下载215 MB后,我只有881705行,所以最终文件大小应该是大约1.3GB)

如果您尝试使用另一套(让我们说“Flu Shot Clinic Locations - 2012”,1058行,192kB),您可以看到您的命令完美无缺,即使它没有写入Chicago.csv。

看看手册页:

-o, --output <file>
          Write  output to <file> instead of stdout.
-O, --remote-name
          Write output to a local file named like the remote file we get. (Only the file part of the remote file is used, the path is cut off.)

使用以下命令时:

curl -O https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD > Chicago.csv

数据写入rows.csv?accessType=DOWNLOAD,stdout保持为空,因此Chicago.csv文件将保持为空。

相反,您应该使用:

curl -o Chicago.csv https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD

或者:

curl https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD > Chicago.csv

答案 1 :(得分:1)

你试过wget吗?像这样:

wget --no-check-certificate --progress=dot https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD