aiohttp 异步网络请求范式

2024 年 12 月 26 日 星期四(已编辑)
/
这篇文章上次修改于 2024 年 12 月 26 日 星期四,可能部分内容已经不适用,如有疑问可询问作者。

aiohttp 异步网络请求范式

最近看爬虫项目看到有人代码这样写

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

一般会将 session 作为参数传入, 写法2:

async def fetch(session, url):
        async with session.get(url) as response:
            return await response.text()

async with aiohttp.ClientSession() as session:
    fetch(session, url)

以前就是觉得挺怪的,也没想过为什么。现在有gpt了直接问
是为了减少创建ClientSession的开销,而且写法2是在官方文档强烈推荐并进行说明的

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...