对多个站点使用cURL或wget

时间:2017-03-11 23:39:07

标签: curl wget

是否有一种简单的方法可以从多个(按顺序编号的)网站下载图像文件,并更改文件名以匹配下载位置?

例如,

www.001.mysite.com/photo.jpg

www.002.mysite.com/photo.jpg

...

...

www.050.mysite.com/photo.jpg

每张网站上的照片名称相同。是否可以下载这些照片,将它们重命名为photo001.jpg(对应于它来自的网站),并将它们放入当前日期的目录中?

我从一些搜索开始......找到了有助于部分内容和其他部分有不同部分的想法,但是当我尝试使其工作时,我得到的一切都没有或错误。

1 个答案:

答案 0 :(得分:0)

你可以使用Bash,但我不知道Bash,所以这里是一个Python示例,利用多个并发进程来减少等待Web服务器,以防你需要下载大量的图像:

import os
num_images = 100 # change me
num_concurrent = 4 # to be tweaked
i = 0
while i < num_images:
    calls = []
    for i2 in range(num_concurrent):
        # this will download 0, 1, ..., 9, 10, 11
        # change the number format if necessary
        call = "curl www.{0}.mysite.com/photo.jpg > {0}.jpg".format(i)
        calls.append(call)
        i += 1
    os.system(" & ".join(calls))

这将运行批量num_concurrent图像下载。我建议你在调整时保守一点,因为非常多的并发连接会对TCP拥塞控制造成严重破坏,并且可能会阻止你从目标网站上被阻止。