使用 curl 下载数据

Shell 中的数据处理

Susan Sun

Data Person

什么是 curl?

curl

  • Client for URLs 的缩写
  • 是一个 Unix 命令行工具
  • 在服务器与本地之间传输数据
  • 用于从 HTTP(S) 站点和 FTP 服务器下载数据
Shell 中的数据处理

检查 curl 安装

检查是否已安装 curl

man curl

如果尚未安装 curl,您会看到:

curl command not found.

完整安装说明见 https://curl.haxx.se/download.html。

Shell 中的数据处理

浏览 curl 手册

如果已安装 curl,您的控制台会类似如下:

在深色终端窗口中显示 curl 手册开头的截图

Shell 中的数据处理

浏览 curl 手册

Enter 向下滚动。

在深色终端窗口中显示部分滚动的 curl 手册截图

q 退出。

Shell 中的数据处理

学习 curl 语法

curl 基本语法:

curl [option flags] [URL]

必须提供 URL。

curl 也支持 HTTPHTTPSFTPSFTP

查看完整选项列表:

curl --help
Shell 中的数据处理

下载单个文件

示例

单个文件存放在:

https://websitename.com/datafilename.txt

使用可选标志 -O 以原文件名保存:

curl -O https://websitename.com/datafilename.txt

如需重命名,使用小写 -o 加新文件名:

curl -o renameddatafilename.txt https://websitename.com/datafilename.txt
Shell 中的数据处理

使用通配解析器下载多个文件

延续上例:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

使用通配解析器(Globbing Parser)

下面命令将顺序下载从 datafilename001.txtdatafilename100.txt 的所有文件。

curl -O https://websitename.com/datafilename[001-100].txt
Shell 中的数据处理

使用通配解析器下载多个文件

延续上例:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

使用通配解析器(Globbing Parser)

按固定步长遍历并每隔 N 个下载一次(如 datafilename010.txtdatafilename020.txt、...、datafilename100.txt)。

curl -O https://websitename.com/datafilename[001-100:10].txt
Shell 中的数据处理

预防性排错

在下载超时场景中,curl 有两个特别实用的选项:

  • -L 若出现 300 段状态码时跟随重定向。

  • -C 断点续传,超时后可继续未完成的传输。

综合使用:

curl -L -O -C https://websitename.com/datafilename[001-100].txt
  • 所有选项须置于 URL 之前。
  • 选项顺序无关(如 -L -C -O 亦可)。
Shell 中的数据处理

祝您玩转 curl!

Shell 中的数据处理

Preparing Video For Download...