我有点盲目地尝试了很多变化,curl并wget尝试下载一些.zip文件.我尝试的第一件事是:
curl --klo ".\bhcdata#1.zip" "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=[1-4]"
Run Code Online (Sandbox Code Playgroud)
上面的命令实际上是由芝加哥联邦储备银行提供的文档中提供的,但它在我的Ubuntu机器上抛出了错误信息:curl: option --klo: is unknown.
有一种直截了当的方法吗?
为了弄清楚我正在尝试做什么: 芝加哥联邦储备银行网站允许您输入年份和季度,然后单击"下载数据文件",它会为您提供相应数据的.zip文件.我想为所有季度做这个,所以我需要一种方法来编写每个季度的命令,以便我可以循环它们.将[1-4]在本例以上命令会抓住所有四个季度的一年之内,但我会罚款只是在时间去四分之一,我尝试了更换1为好.我尝试过没有各种选项组合,但没有任何工作.
在我的机器上,以下命令工作正常:
curl -o ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
Run Code Online (Sandbox Code Playgroud)
注意:
我完成时找到了一个bhcdata1.zip在我的目录中命名的文件:
-rw-r--r-- 1 floris floris 1545868 Feb 13 21:05 bhcdata1.zip
Run Code Online (Sandbox Code Playgroud)
你可能会发现你也需要-k旗帜......虽然我不需要在我的机器上.那就是
curl -ko ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
Run Code Online (Sandbox Code Playgroud)
工作得很好......
获得所有四个季度的奖金,您可以简单地将以下行放在脚本中.保存为downloadAll.用chmod 755 downloadAll,将文件更改为"executable" ,然后键入./downloadAll.请享用…
#!/bin/bash
for i in {1..4}
do
curl -ko ./bhcdata$i.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=$i"
done
Run Code Online (Sandbox Code Playgroud)
结果:
-rw-r--r-- 1 floris floris 1545868 Feb 13 21:11 bhcdata1.zip
-rw-r--r-- 1 floris floris 2413876 Feb 13 21:11 bhcdata2.zip
-rw-r--r-- 1 floris floris 1573810 Feb 13 21:11 bhcdata3.zip
-rw-r--r-- 1 floris floris 2500525 Feb 13 21:12 bhcdata4.zip
Run Code Online (Sandbox Code Playgroud)
如果你想要多年,做(某些变种)
#!/bin/bash
for yr in {2010..2012}
do
for qtr in {1..4}
do
curl -ko ./bhcdata$yr_$qtr.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=$yr&DQTR=$qtr"
done
done
Run Code Online (Sandbox Code Playgroud)