import asyncio import aiohttp # 案例优美图库 urls = [ 'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/vif3daynop3.jpg', 'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/0yrighfazhu.jpg', 'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/rggtiwgnyzj.jpg' ] async def aiodownload(url): # 发送请求、得到图片内容、保存图片 # s = aiohttp.ClientSession()# 等价于request模块 name = url.rsplit('/', 1)[1] async with aiohttp.ClientSession() as session: async with session.get(url) as r: # 请求完,写入文件 with open(name, mode='wb') as f: t = await r.content.read() f.write(t) # 读取是异步的,需要await async def main(): tasks = [] for url in urls: tasks.append(aiodownload(url)) await asyncio.wait(tasks) if __name__ == '__main__': asyncio.run(main())