首页
学习
活动
专区
工具
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)

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

相关·内容

领券