常用工具您现在的位置是:首页 > 工具箱 > 常用工具

curl、wget、Aria2 轻松实现文件批量下载

<a href='mailto:'>微wx笑</a>的头像微wx笑 2021-11-25常用工具 0 0关键字: curl  wget  Aria2  文件下载  

下载文件的工具、方法有很多,但是想批量的下载文件,很多工具都不够方便灵活,这里分别介绍几款工具,总有一款适合你。

迅雷已经用了 10 年,一直把它看作是速度最快也最方便的下载工具。自从干败了Flashget之后,好像还没有谁能超越它。Ejf无知人生

我没有使用最新版本的,一直使用一个比较好的版本,好像是5.8.4吧。
Ejf无知人生

它的批量下载是这样的:Ejf无知人生

image.pngEjf无知人生

仅支持数字的有规律的网址。Ejf无知人生


Ejf无知人生

curl

使用curl很方便的批量下载:Ejf无知人生

curl -C - -O https://abc.xyz/[01-99].png

参数解释:Ejf无知人生

-C - 断点续载Ejf无知人生

-O 下载的文件另存为url路径中的文件名Ejf无知人生

-o 指定要保存的路径、文件名,只指定路径是不行的Ejf无知人生

批量下载会使用到的表达式有两种:Ejf无知人生


Ejf无知人生

{}Ejf无知人生

[]Ejf无知人生

{a,b,c}会遍历abc三个元素。Ejf无知人生


Ejf无知人生

例如:Ejf无知人生

curl https://{a,b,c}.com/index.html

会遍历:Ejf无知人生

https://a.com/index.html
https://b.com/index.html
https://c.com/index.html


Ejf无知人生

那么我要下载的文件名没有任何规律,但是我有一个文件列表,怎么办呢?Ejf无知人生

请看wgetEjf无知人生


Ejf无知人生

wget

什么是wget?Ejf无知人生

wget是一个强力方便的命令行下的下载工具,可以通过HTTP和FTP协议(两种最广泛的互联网协议)从因特网中检索并获取文件。Ejf无知人生


Ejf无知人生

此外,wget还具有如下特点:Ejf无知人生


Ejf无知人生

以非交互方式工作,因而能够在用户注销后在后台进行工作(针对Linux command)。Ejf无知人生

在缓慢甚至不稳定的连接中依旧可以正常工作,支持断点续传功能(需要附加命令参数)。Ejf无知人生

支持HTML页面以及FTP站点的递归检索,您可以使用它来获取网站的镜像,或者像网页机器人(网页爬虫)一样遍历网络。Ejf无知人生

使用FTP协议时,支持通配符和目录的递归镜像匹配。Ejf无知人生

在文件获取时可以增加时间标记,因此可以自动识别远程文件自上次检索后是否发生更改,并自动检索新版本。Ejf无知人生

支持代理服务器,以减轻网络负载,加快检索速度。同时还提供了经由防火墙的访问。如果需要使用socks网关,可以获取socks库并编译wget以支持socks。Ejf无知人生

基本命令格式:Ejf无知人生

wget [option] [URL]
[--option]
-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
…


Ejf无知人生

Wget for windowsEjf无知人生

项目主页:Windows binaries of GNU WgetEjf无知人生


Ejf无知人生

Wget for Windows 的安装:Ejf无知人生

项目主页中提供了两种安装方式(使用 exe 应用程序安装与 zip 压缩包安装),此处仅介绍ZIP压缩包安装方式。Ejf无知人生

第一步,获取 Wget for Windows:Ejf无知人生

前往项目主页,下载 ZIP 格式程序文件,Ejf无知人生

解压缩,并存放至系统目录下(比如:C:\windows)。Ejf无知人生

如果你是一位大佬,有自己的习惯,那么按照自己的习惯好了。Ejf无知人生

指定一个文件列表,批量下载文件Ejf无知人生

列表文件格式如下:Ejf无知人生

http://s2.youyu18.com/emo/com/0.gif
http://s2.youyu18.com/emo/com/1.gif
http://s2.youyu18.com/emo/com/2.gif
http://s2.youyu18.com/emo/com/3.gif
http://s2.youyu18.com/emo/com/4.gif
http://s2.youyu18.com/emo/com/5.gif

对,就是这样,一行一个url,不需要做任务处理,假设文件名为:list.txt
Ejf无知人生

wget批量下载命令如下:Ejf无知人生

wget -i list.txt

这就OK了,是不是特别简单?Ejf无知人生


Ejf无知人生


Ejf无知人生

更多内容可参见:

Wget - WikipediaEjf无知人生

每天一个linux命令(61):wget命令Ejf无知人生

How to use wget command in linuxEjf无知人生

GNU-Wget 项目主页Ejf无知人生


Ejf无知人生

怎么样,满足需求了吗?Ejf无知人生

什么?还没有?Ejf无知人生

你想下载的BT资源?要支持BT种子,支持磁力链?还要分片多线程下载?Ejf无知人生

Aria2

我在TS助手 v3.52 中发现了一个好东西:Aria2,文件名是:aria2c.exeEjf无知人生

Aria2需要通过配置文件来配置一些基础项,也可以在运行时指定。Ejf无知人生

如果你有一个列表文件,批量下载的方法像 wget 的用法完全一样。Ejf无知人生

详细的使用方法参考:https://zhuanlan.zhihu.com/p/37021947 Ejf无知人生

我这里先不详细介绍了。Ejf无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

很赞哦! () 有话说 ()