猿问

多个 aiohttp 会话

有没有办法让每个 URL 都有自己的会话?我阅读了 Github 上的 aiohttp 文档,但我找不到这是否可行。我知道可以使用请求,但不确定如何使用 aiohttp。感谢任何帮助,因为我无法找到答案。


sites = ['http://example.com/api/1', 'http://example.com/api/2']


async def fetch(session, site):

    print('Fetching: ' + site)


    async with session.get(site) as response:

        return await response.text()


async def main():

    t = []


    async with aiohttp.ClientSession() as session:

        for site in sites:

            task = asyncio.create_task(fetch(session, site))

            t.append(task)

        await asyncio.gather(*t)


慕码人8056858
浏览 295回答 1
1回答

天涯尽头无女友

有没有办法让每个 URL 都有自己的会话?是的,只需fetch将会话创建移动到协程中:async def fetch(site):    print('Fetching: ' + site)    async with aiohttp.ClientSession() as session, \            session.get(site) as response:        return await response.text()async def main():    t = []    for site in sites:        task = asyncio.create_task(fetch(site))        t.append(task)    await asyncio.gather(*t)
随时随地看视频慕课网APP

相关分类

Python
我要回答