python 异步 请求接口

import asyncio
import aiohttp
import time


async def fetch(session, url):
    print("发送请求", url)
    async with session.get(url, verify_ssl=False) as response:
        content = await response.content.read()
        with open(file=str(time.time()) + ".jpg", mode="wb") as file_object:
            file_object.write(content)
    print("保存成功", url)


async def main():
    async with aiohttp.ClientSession() as session:
        url_list = [
            "https://scpic.chinaz.net/files/pic/pic9/202107/apic34058.jpg",
            "https://scpic.chinaz.net/files/pic/pic9/202107/apic34061.jpg",
            "https://scpic.chinaz.net/files/pic/pic9/202107/apic34055.jpg"
        ]
        tasks = [asyncio.create_task(fetch(session, url), name=url.split("/")[-1]) for url in url_list]
        done, pending = await asyncio.wait(tasks)
        print(done, pending)


if __name__ == '__main__':
    asyncio.run(main())  # 老是报错 RuntimeError: Event loop is closed
    # loop = asyncio.get_event_loop()
    # loop.run_until_complete(main())

你可能感兴趣的:(JAVA,Python,Go,python)