在Python中利用grequests實現(xiàn)一個并發(fā)請求功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)專注于澄邁網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供澄邁營銷型網(wǎng)站建設(shè),澄邁網(wǎng)站制作、澄邁網(wǎng)頁設(shè)計、澄邁網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造澄邁網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供澄邁網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。前言
requests是Python發(fā)送接口請求非常好用的一個三方庫,由K神編寫,簡單,方便上手快。但是requests發(fā)送請求是串行的,即阻塞的。發(fā)送完一條請求才能發(fā)送另一條請求。
為了提升測試效率,一般我們需要并行發(fā)送請求。這里可以使用多線程,或者協(xié)程,gevent或者aiohttp,然而使用起來,都相對麻煩。
grequests簡單使用
首先構(gòu)造一個請求列表,使用grequests.map()并行發(fā)送,得到一個響應(yīng)列表。示例如下。
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) # 并行發(fā)送,等最后一個運行完后返回 print(res_list[0].text) # 打印第一個請求的響應(yīng)文本