对多个站点使用 cURL 或 wget

Using cURL or wget for multiple sites

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

例如,

www.001.mysite.com/photo.jpg

www.002.mysite.com/photo.jpg

...

...

www.050.mysite.com/photo.jpg

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

我从一些搜索开始...找到了对其中一部分有帮助的想法和其他对不同部分有帮助的想法,但是当我尝试让它工作时,我要么一无所获,要么一无所获。

您可以为此使用 Bash,但我不知道 Bash,所以这里有一个 Python 使用多个并发进程来减少网络服务器等待的示例,如果您需要下载大量图片:

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 拥塞控制造成严重破坏,还可能使您无法访问目标网站。