python异步requests_异步请求Python库 grequests的应用和与requests库的响应速度的比较...

本文通过实例展示了如何使用grequests库进行异步网络请求,与requests库的同步请求相比,grequests显著减少了HTTP请求的响应时间。作者分享了在特定网络环境下,grequests的请求速度远超requests,提高了程序的执行效率。
摘要由CSDN通过智能技术生成

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库和requests库的响应比较

# -*- coding: utf-8 -*-importgrequests

importtime

importrequests

importsys

reload(sys)

sys.setdefaultencoding(‘utf-8‘)

# 同网络环境下比较结果now = int(time.time())

timeArray = time.localtime(now)

otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S",timeArray)

printotherStyleTime

urls = [‘http://letiantian.me/‘] * 10# ------------------- grequests 库请求-------------------------------------# reqs = [grequests.get(url) for url in urls] # 用时1秒左右# response = grequests.map(reqs)# print response[9].status_code# ------------------- requests 库请求-------------------------------------reqs = [requests.get(url) forurl inurls] # 用时7秒printreqs[9].status_code

now2 = int(time.time())

timeArray2 = time.localtime(now2)

otherStyleTime2 = time.strftime("%Y--%m--%d %H:%M:%S",timeArray2)

printotherStyleTime,‘-------------‘,otherStyleTime2

pasting

原文:https://www.cnblogs.com/fanjp666888/p/9112786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值