如何大幅度提高requests的訪問速度,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)專注于凌海網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供凌海營(yíng)銷型網(wǎng)站建設(shè),凌海網(wǎng)站制作、凌海網(wǎng)頁設(shè)計(jì)、凌海網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造凌海網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供凌海網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
我做了一個(gè)垃圾信息過濾的 HTTP 接口?,F(xiàn)在有一千萬條消息需要經(jīng)過這個(gè)接口進(jìn)行垃圾檢測(cè)。
一開始我的代碼是這樣的:
import requests
messages = ['第一條', '第二條', '第三條']
for message in messages:
resp = requests.post(url, json={'msg': message}).json()
if resp['trash']:
print('是垃圾消息')
我們寫一段代碼來看看運(yùn)行速度:
訪問一百次百度,竟然需要 20 秒。那我有一千萬條信息,這個(gè)時(shí)間太長(zhǎng)了。
有沒有什么加速的辦法呢?除了我們之前文章講到的 多線程、aiohttp 或者干脆用 Scrapy 外,還可以讓 requests 保持連接從而減少頻繁進(jìn)行 TCP 三次握手的時(shí)間消耗。
那么要如何讓 requests 保持連接呢?實(shí)際上非常簡(jiǎn)單,使用Session
對(duì)象即可。
修改后的代碼:
import requests
import time
start = time.time()
session = requests.Session()
for _ in range(100):
resp = session.get('https://baidu.com').content.decode()
end = time.time()
print(f'訪問一百次網(wǎng)頁,耗時(shí):{end - start}')
運(yùn)行效果如下圖所示:
性能得到了顯著提升。訪問 100 頁只需要 5 秒鐘。
在官方文檔[1]中,requests 也說到了 Session
對(duì)象能夠保持連接:
?The Session object allows you to persist certain parameters across requests. It also persists cookies across all requests made from the Session instance, and will use urllib3’s connection pooling. So if you’re making several requests to the same host, the underlying TCP connection will be reused, which can result in a significant performance increase (see HTTP persistent connection).
”
?Excellent news — thanks to urllib3, keep-alive is 100% automatic within a session! Any requests that you make within a session will automatically reuse the appropriate connection!
”
看完上述內(nèi)容,你們掌握如何大幅度提高requests的訪問速度的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站名稱:如何大幅度提高requests的訪問速度
標(biāo)題網(wǎng)址:http://jinyejixie.com/article8/ppseop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、外貿(mào)建站、網(wǎng)站改版、微信公眾號(hào)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)