重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在Python中利用grequests实现一个并发请求功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联专注于澄迈网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供澄迈营销型网站建设,澄迈网站制作、澄迈网页设计、澄迈网站官网定制、小程序制作服务,打造澄迈网络公司原创品牌,更为您提供澄迈网站排名全网营销落地服务。前言
requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快。但是requests发送请求是串行的,即阻塞的。发送完一条请求才能发送另一条请求。
为了提升测试效率,一般我们需要并行发送请求。这里可以使用多线程,或者协程,gevent或者aiohttp,然而使用起来,都相对麻烦。
grequests简单使用
首先构造一个请求列表,使用grequests.map()并行发送,得到一个响应列表。示例如下。
import grequests req_list = [ # 请求列表 grequests.get('http://httpbin.org/get?a=1&b=2'), grequests.post('http://httpbin.org/post', data={'a':1,'b':2}), grequests.put('http://httpbin.org/post', json={'a': 1, 'b': 2}), ] res_list = grequests.map(req_list) # 并行发送,等最后一个运行完后返回 print(res_list[0].text) # 打印第一个请求的响应文本