requests库是python一个优秀的HTTP库,使用它可以非常简单地执行HTTP的各种操作,例如GET、POST等。不过,这个库所执行的网络请求都是同步了,即cpu发出请求指令后,IO执行发送和等待等操作,在这段IO执行的时间里,cpu什么也不做,这样cpu的计算能力就被浪费了。所以,可以尝试把网络请求修改为异步的,也就是在IO发挥作用的这段时间,CPU去做这个程序里的其他事情,等IO收到响应的数据,CPU回来处理。偶然发现下面的帖子特分享与大家,并与requests库进行简单响应速度比较:
建议先阅读原博主文章:
感谢原博主的分享精神,转到原博地址:HTTPS://WWW.LETIANTIAN.ME/2014-10-04-ASYNCHRONOUS-REQUESTS/
重要参数:
这里需要补充的是几个grequests的重要参数:
def grequests.map(requests, stream=False, size=None, exception_handler=None, gtimeout=None)
参数
说明
备注
size
协程的并发度
当一个协程进行IO等待的时候,就会将CPU交给其他协程序,一般设置为50 ~ 100足矣
exception_handler
协程的并发度
捕获单个请求的异常
gtimeout
整体请求的超时设置
-----------------------------------华丽的分割线----------------------