我有点盲目地尝试curl
和wget
的许多变体来尝试下载一些.zip
文件。我尝试的第一件事是:
curl --klo ".\bhcdata#1.zip" "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=[1-4]"
上面的命令实际上是in the documentation by the Chicago Fed提供的,但它在我的Ubuntu机器上抛出错误消息:curl: option --klo: is unknown
。
有直接的方法吗?
要明确说明我要做的事情:芝加哥联邦储备银行website允许您输入年份和季度,然后点击“下载数据文件”,它会为您提供.zip文件的相应数据。我想为所有季度做这个,所以我需要一种方法来编写每个季度的命令,以便我可以循环它们。上面示例命令中的[1-4]
会在一年内占用所有四个季度,但我可以一次只获得一个季度,并且我也尝试替换1
。我尝试过没有各种选项组合,但没有任何工作。
答案 0 :(得分:7)
在我的机器上,以下命令工作正常:
curl -o ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
注意:
我完成后在我的目录中找到了一个名为bhcdata1.zip
的文件:
-rw-r--r-- 1 floris floris 1545868 Feb 13 21:05 bhcdata1.zip
你可能会发现你需要-k
标志......虽然我不需要在我的机器上。那就是
curl -ko ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
工作得很好......
BONUS 要获得所有四个季度,您只需将以下行放在脚本中即可。将其另存为downloadAll
。使用chmod 755 downloadAll
将文件更改为“可执行文件”,然后键入./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
结果:
-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
如果你想要多年,做(某些变体)
#!/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
答案 1 :(得分:1)
您的网址似乎错误。尝试
wget "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2013&DQTR=1"
你应该能够循环年份和季度
答案 2 :(得分:0)
以下bash脚本是我的最终产品:
#!/bin/bash
for i in {1986..2011}
do
for j in {1..4}
do
curl -ko year${i}month${j}.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=$i&DQTR=$j"
done
done
答案 3 :(得分:0)
使用
curl file_name_url.zip -O -J -L