python异步--aiohttp

aiohttp是Python中的异步网络库,作为requests的异步版本,用于实现协程中的网页请求。本文介绍了aiohttp的基本用法,包括URL参数传递、响应内容读取、自定义header和cookie、控制连接池以及顺序访问多个连接,并强调了使用中的注意点,如正确处理异步操作和限制并发连接数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

requests大家应该都不陌生是,urllib和urllib2的改进版,我们做爬虫的时候经常要用到这个第三方库来请求网页并且获取网页内容

但是requests的方法有个不好的就是不能等待,也就是说无法放在await后面,因此无法使用requests库在协程程序中实现请求

因此就出现了aiohttp用来实现异步网页请求,可以理解为异步版本的requests


基本用法

官方推荐使用ClientSession()函数来调用网页请求等相关方法

首先,我们在协程中使用ClientSession()的get()或者request()方法来请求网页

requests的使用:

import requests
def hello(url):
    resp = requests.get(url)
    return resp.text()


url = "http://www.baidu.com"

print(hello(url))

使用aiohttp实现:

from aiohttp import ClientSession
async def hello(url):
    async with ClientSession() as session:
        async with session.get(url) as resp:
            print(resp.status)
            resp = await resp.text()
            print(resp)



loop = asyncio.get_event_loop()
url = "http://baidu.com"
loop.run_until_complete(hello(url))
  • 使用async和await关键字将函数异步化

  • 使用ClientSession作为接口发出请求。ClientSession允许在多个请求之间保存cookie。会话(session)在使用完毕后需要显式关闭,类似于关闭文件,关闭Session也是一个异步的,需要直接用async with(异步上下文),也就是with的异步化
  • 建立客户端sessi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值