对多个站点使用cURL或wget

对多个站点使用cURL或wget,curl,wget,Curl,Wget,有没有一种简单的方法可以从多个(按顺序编号的)站点下载图像文件,并更改文件名以匹配下载位置 比如说, www.001.mysite.com/photo.jpg www.002.mysite.com/photo.jpg www.050.mysite.com/photo.jpg 这张照片在每个网站上的名字都是一样的。是否可以下载这些照片,将它们重命名为photo001.jpg(对应于它来自的站点),并将它们放入具有当前日期的目录中 我从一些搜索开始…找到了一些想法,这些想法对这部分内容有所帮助,

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

比如说,

www.001.mysite.com/photo.jpg

www.002.mysite.com/photo.jpg

www.050.mysite.com/photo.jpg

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


我从一些搜索开始…找到了一些想法,这些想法对这部分内容有所帮助,而其他的则有不同的部分,但当我试图让它工作时,我要么一无所获,要么出错。

你可以使用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_images=100#改变我
num_concurrent=4#要调整
i=0
而我{0}.jpg”。格式(i)
calls.append(调用)
i+=1
操作系统(“&”.join(调用))

这将同时运行批
num\u
图像下载。我建议您在调整这一点时要保守,因为大量并发连接会对TCP拥塞控制造成严重破坏,也可能会阻止您访问目标网站。

您是否使用编程或脚本语言?快速命令行,假设您在macOS或Linux上,bash是您选择的shell:{1..50}中i的
;do j=$(printf%03d$i);回声旋度-o图像$j.jpghttp://www.$j.mysite.com/photo.jpg;完成
。调整它,直到看起来您需要删除
echo
让它这样做(即
echo
使它只显示命令,而不是运行命令)。您可以使用配置文件进行此操作。这是手册页上的-K。