有一个网站可以存储两个视频作为数千个PNG的列表,总共有31145张图片。有没有一种通过生成URL来自动下载的方法?(我对编码一无所知。)
我无法访问目录并批量下载文件。
我看了一下这个答案,但它不适用于我,因为我使用的是Windows10,我还检查了这个答案;我试图将它们合并到for /l %x in (1, 1, 19999) do (wget https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/719509184001/570e9336-d36c-4d41-8cbe-a67fe3bdc2b6/main/1280x720/%%xms/match/image.png)中,这显然不起作用。
然后我下载了Python3.11来尝试这个答案,但是不起作用,因为它可能太老了,因为它告诉我urllib2不存在。
发布于 2022-11-26 18:14:29
Python 3.11 for Windows 10 64位
import urllib
import urllib.request
template_url = 'https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/719509184001/570e9336-d36c-4d41-8cbe-a67fe3bdc2b6/main/1280x720/%05dms/match/image.png'
template_name = 'image%05d.png'
for i in range(0,20000):
f = template_name % i
urllib.request.urlretrieve(template_url % i, f)这是非常缓慢的,它至少花了我5个小时来下载一切,因为它做到了1乘1,有时停止工作(由于网站),并没有自动重新启动。而且几乎80%的下载图像都是复制的,所以这是非常不切实际的(7 Go)。所有图像都被下载到临时文件夹中。但密码有效!我相信它是为了复制“我的世界”而制作的,但是在像“后效”这样的软件中,所有的帧都只是一个微小的不同。
资料来源: Python 1 2 3. 4. 5;Stackoverflow 1 2 3. 4.;和@Daweo's help
发布于 2022-11-26 16:24:41
您需要获得两件事:生成图像的URL,然后下载它们。
可以使用for循环和格式化来生成URL,请考虑下面的简单示例
template = 'xxx/%05dms/match/image.png'
for i in range(1,11): # limited for brevity sake, adjust as requires
print(template % i)给予输出
xxx/00001ms/match/image.png
xxx/00002ms/match/image.png
xxx/00003ms/match/image.png
xxx/00004ms/match/image.png
xxx/00005ms/match/image.png
xxx/00006ms/match/image.png
xxx/00007ms/match/image.png
xxx/00008ms/match/image.png
xxx/00009ms/match/image.png
xxx/00010ms/match/image.png%05d表示把十进制数放在这里,以零作为前缀,宽度为5个字符。
要下载,可以使用urllib.urlretrieve rembering提供唯一的名称,请考虑下面的简单示例
import urllib
template_url = 'xxx/%05dms/match/image.png'
template_name = 'image%05d.png'
for i in range(1,11):
urllib.urlretrieve(template_url % i, template_name % i)在将template_url设置为real之后,应该将图像下载到当前的工作目录中,如image00001.png等。
注意:当您使用xrange时,我假设您必须不惜任何代价使用python2,因此我使用urllib.urlretrieve而不是urllib.request.urlretrieve和古老的字符串格式方法,而不是所谓的f-字符串。
https://stackoverflow.com/questions/74583694
复制相似问题