首页 > 解决方案 > urllib urlretrieve 仅将最终图像保存在 url 列表中

问题描述

我对使用 Python 还是很陌生。我一直在尝试设置一个非常基本的网络爬虫来帮助加快我的工作日,它应该从网站的一部分下载图像并保存它们。

我有一个 url 列表,我正在尝试使用它urllib.request.urlretrieve来下载所有图像。

输出位置 ( savepath) 会更新,因此它将文件夹中当前的最高数字加 1。

我尝试了很多不同的方法,但urlretrieve只保存列表中最后一个 url 中的图像。有没有办法下载 url 列表中的所有图像?

to_download=['url1','url2','url3','url4']

for t in to_download:
    urllib.request.urlretrieve(t, savepath)

savepath这是我每次尝试更新的代码

def getNextFilePath(photos):
highest_num = 0
for f in os.listdir(photos):
    if os.path.isfile(os.path.join(photos, f)):
        file_name = os.path.splitext(f)[0]
        try:
            file_num = int(file_name)
            if file_num > highest_num:
                highest_num = file_num
        except ValueError:
            'The file name "%s" is not an integer. Skipping' % file_name

output_file = os.path.join(output_folder, str(highest_num + 1))
return output_file

标签: pythonpython-3.xweb-scrapingurlliburlretrieve

解决方案


你在更新savepath吗?如果您将相同的内容传递savepath给每个循环迭代,则很可能只是一遍又一遍地覆盖同一个文件。

希望对您有所帮助,祝您编码愉快!


推荐阅读