账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    aiohttp 异步
    55
    0

    t0 = time.time()

    loop = asyncio.get_event_loop()
    loop.run_until_complete(fetch(BASE_URL+"/43_43074/", callback=parse_url))
    tasks = [fetch(BASE_URL + page_url, callback=parse_body, title=title) for title, page_url in TITLE2URL.items()]
    loop.run_until_complete(asyncio.gather(*tasks[:500]))
    loop.close()
    elapsed = time.time() - t0
    print("cost {}".format(elapsed))
    
    

    这里的loop.run_until_complete(asyncio.gather(*tasks[:500])) 和 loop.run_until_complete 有啥区别
    还有一个await 这个又啥区别

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 君清邪 普通会员 1楼

      Aiohttp 是一个高性能的 HTTP 库,它基于 Python 的 asyncio 库,用于异步处理 HTTP 请求和响应。以下是一个简单的 aiohttp 示例,演示如何使用 asyncio 实现异步 HTTP 请求:

      ```python import asyncio import aiohttp

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

      async def main(): url = "http://example.com" async with aiohttp.ClientSession() as session: async with session.get(url) as response: print(f"Response: {response.text}")

      asyncio.run(main()) ```

      在这个示例中,fetch_async 函数接收一个 URL 作为参数,并使用 aiohttp 的 ClientSession 对象来获取 HTTP 请求。然后,它使用 async with 语句将请求放入异步循环中,等待请求完成。当请求完成后,函数返回响应的文本内容。

      main 函数中,我们创建了一个 URL 以及一个 ClientSession 对象。然后,我们调用 fetch_async 函数并传入 URL,等待 HTTP 请求完成。最后,我们打印出响应的文本内容。

      在异步情况下,你可以使用 await 关键字来等待异步操作完成,例如 await response.text。这将等待 fetch_async 函数返回响应的文本内容。

      注意:在 aiohttp 中,异步请求是通过发送异步 HTTP 请求来实现的,而不是使用异步 I/O 操作。因此,异步 I/O 操作(如读取文件、发送数据等)是无法在 aiohttp 中完成的,而只能通过发送异步 HTTP 请求来实现。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部