从命令行下载.zip文件



我一直在盲目地尝试许多curl变体,wget尝试下载一些.zip文件。 我尝试的第一件事是这样的:

curl --klo ".bhcdata#1.zip" "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=[1-4]"

上面的命令实际上是在芝加哥联储的文档中提供的,但它在我的 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"

注意:

  1. 单破折号代替双破折号
  2. 我只指定了输出文件 - 没有引号和正斜杠
  3. 我仅将URL简化为特定季度

完成后,我在目录中找到了一个名为 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"

效果同样好...

奖金 要获得所有四个季度,您可以简单地将以下行放入脚本中。另存为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

看起来您有错误的网址。尝试

wget "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2013&DQTR=1"

您应该能够循环年份和季度

以下 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

使用

curl file_name_url.zip -O -J -L

最新更新