为了账号安全,请及时绑定邮箱和手机立即绑定

多个 aiohttp 会话

多个 aiohttp 会话

慕码人8056858 2021-09-11 10:29:57
有没有办法让每个 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)
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

有没有办法让每个 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)


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信