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

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

被折叠的 条评论
为什么被折叠?



