首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从python中的urls列表异步下载图片?

从Python中的URL列表异步下载图片可以使用异步编程库asyncioaiohttp来实现。下面是一个完整的示例代码:

代码语言:txt
复制
import asyncio
import aiohttp

async def download_image(session, url):
    async with session.get(url) as response:
        if response.status == 200:
            filename = url.split("/")[-1]
            with open(filename, "wb") as f:
                while True:
                    chunk = await response.content.read(1024)
                    if not chunk:
                        break
                    f.write(chunk)
            print(f"Downloaded {filename}")
        else:
            print(f"Failed to download {url}")

async def main():
    urls = [
        "https://example.com/image1.jpg",
        "https://example.com/image2.jpg",
        "https://example.com/image3.jpg"
    ]

    async with aiohttp.ClientSession() as session:
        tasks = []
        for url in urls:
            task = asyncio.ensure_future(download_image(session, url))
            tasks.append(task)
        await asyncio.gather(*tasks)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

在上面的代码中,首先定义了一个download_image函数,用于下载单个图片。然后,在main函数中,创建了一个aiohttpClientSession对象,用于发送HTTP请求。接下来,使用asyncio.ensure_future将每个下载任务封装成Task对象,并将它们添加到任务列表中。最后,使用asyncio.gather来并发执行所有的下载任务。

你可以将需要下载的图片URL添加到urls列表中,然后运行上述代码即可异步下载图片。下载的图片将保存在当前目录下,并以URL中的文件名命名。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理下载的图片文件。你可以通过以下链接了解更多信息:腾讯云对象存储(COS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

[编程经验] 我是如何半自动抓取素材公社图片的

网络爬虫是一件比较繁琐的事情,特别考验人的耐心。但又是非常令人着迷的一件事,因为当你从网络上爬到了自己的想要的数据,满满的成就感油然而生。但是我对爬虫掌握的并不好,所以我只能把我知道了,在这里做个分享,讲的不好,请见谅。记得当时找实习工作的时候,去面试某家公司的Python工程师,去了给了我一份标准的爬虫工程师的试卷,做完一脸懵逼啊!面试官都不想和我说话的感觉(./嫌弃.sh)。我觉得哈,面试者能力在差,你也不能表现出满眼的鄙视吧,这说明什么?!这种公司不去也罢! 简单介绍一下我对爬虫的理解。开始学习爬虫是

05
领券