我使用wget下载网站内容,但是wget是一个一个下载文件的。

我怎么能让wget下载使用4个同时连接?


当前回答

尝试pcurl

http://sourceforge.net/projects/pcurl/

使用curl代替wget,并行下载10段。

其他回答

使用咏叹调2:

aria2c -x 16 [url]
#          |
#          |
#          |
#          ----> the number of connections 

http://aria2.sourceforge.net

我强烈建议使用httrack。

例如:httrack -v -w http://example.com/

默认情况下,它将使用8个同时连接创建镜像。Httrack有很多游戏地点可供选择。看一看。

make可以很容易地并行化(例如,make -j 4)。例如,这是一个简单的Makefile,我正在使用wget并行下载文件:

BASE=http://www.somewhere.com/path/to
FILES=$(shell awk '{printf "%s.ext\n", $$1}' filelist.txt)
LOG=download.log

all: $(FILES)
    echo $(FILES)

%.ext:
    wget -N -a $(LOG) $(BASE)/$@

.PHONY: all
default: all

为了加快文件下载速度,Wget不支持多个套接字连接。

我想我们可以给出比格里安更好的答案。

正确的方法是使用aria2。

aria2c -x 16 -s 16 [url]
#          |    |
#          |    |
#          |    |
#          ---------> the number of connections here

官方文档:

-x,——max-connection-per-server=NUM:每次下载到一台服务器的最大连接数。取值范围:1 ~ 16。默认值:1

-s,——split=N:使用N个连接下载文件。如果提供了超过N个uri,则使用前N个uri,其余url用于备份。如果给出的uri少于N个,则这些url将被使用不止一次,以便同时建立总共N个连接。到同一主机的连接数量由——max-connection-per-server选项限制。另参见——min-split-size选项。取值范围:1-*默认值:5

一个新的(但尚未发布的)工具是Mget。 它已经从Wget中获得了许多选项,并提供了一个库,允许您轻松地将(递归)下载嵌入到您自己的应用程序中。

回答你的问题:

Mget——num-threads=4 [url]

更新

Mget现在开发为Wget2,修复了许多错误,增加了更多的功能(例如HTTP/2支持)。

——num-threads现在是——max-threads。