我使用wget下载网站内容,但是wget是一个一个下载文件的。
我怎么能让wget下载使用4个同时连接?
我使用wget下载网站内容,但是wget是一个一个下载文件的。
我怎么能让wget下载使用4个同时连接?
当前回答
为每个链接调用Wget并将其设置为在后台运行。
我尝试了这段Python代码
with open('links.txt', 'r')as f1: # Opens links.txt file with read mode
list_1 = f1.read().splitlines() # Get every line in links.txt
for i in list_1: # Iteration over each link
!wget "$i" -bq # Call wget with background mode
参数:
b - Run in Background
q - Quiet mode (No Output)
其他回答
另一个可以做到这一点的程序是axel。
axel -n <NUMBER_OF_CONNECTIONS> URL
对于基本的HTTP认证,
axel -n <NUMBER_OF_CONNECTIONS> "user:password@https://domain.tld/path/file.ext"
Ubuntu手册页。
尝试pcurl
http://sourceforge.net/projects/pcurl/
使用curl代替wget,并行下载10段。
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
他们总是说这要视情况而定,但当谈到镜像网站时,最好的是httrack。这是超级快速和容易工作。唯一的缺点是它是所谓的支持论坛,但你可以使用官方文档找到你的方法。它有GUI和CLI界面,它支持cookie,只是阅读文档,这是最好的。(用这个工具你可以在你的硬盘上下载整个网络)
httrack -c8 [url]
默认情况下,最大同时连接数限制为8,以避免服务器过载
如果你在做递归下载,你还不知道所有的url, wget是完美的。
如果您已经有了想要下载的每个URL的列表,那么可以跳过下面的cURL。
使用Wget递归地进行多个同时下载(未知的url列表)
# Multiple simultaneous donwloads
URL=ftp://ftp.example.com
for i in {1..10}; do
wget --no-clobber --recursive "${URL}" &
done
上面的循环将启动10个wget,每个wget都递归地从同一个网站下载,但是它们不会重叠或下载同一文件两次。
使用——no-clobber可以防止10个wget进程中的每个进程两次下载同一个文件(包括完整的相对URL路径)。
& fork每个wget到后台,允许你运行多个同时下载从同一个网站使用wget。
从url列表中使用curl
如果你已经有了一个想要下载的url列表,curl -Z是并行的curl,默认一次运行50个下载。
然而,对于curl,列表必须是这样的格式:
url = https://example.com/1.html
-O
url = https://example.com/2.html
-O
因此,如果您已经有一个要下载的url列表,只需格式化该列表,然后运行cURL
cat url_list.txt
#https://example.com/1.html
#https://example.com/2.html
touch url_list_formatted.txt
while read -r URL; do
echo "url = ${URL}" >> url_list_formatted.txt
echo "-O" >> url_list_formatted.txt
done < url_list.txt
使用curl从url列表中并行下载:
curl -Z --parallel-max 100 -K url_list_formatted.txt
例如,
$ curl -Z --parallel-max 100 -K url_list_formatted.txt
DL% UL% Dled Uled Xfers Live Qd Total Current Left Speed
100 -- 2512 0 2 0 0 0:00:01 0:00:01 --:--:-- 1973
$ ls
1.html 2.html url_list_formatted.txt url_list.txt