1. 程式人生 > 程式設計 >Python requests及aiohttp速度對比程式碼例項

Python requests及aiohttp速度對比程式碼例項

環境:centos7 python3.6

測試網址:www.bai.com

測試方式:抓取百度100次

結果:

aio: 10.702147483825684s
requests: 12.404678583145142s

非同步框架的速度還是有顯著提升的。

下面貢獻程式碼:

import aiohttp
import time
import requests
import asyncio
 
 
def test_requests():
  """ 測試requessts請求百度100次時間 """
 
  start = time.time()
  url = "https://www.baidu.com"
  for i in range(100):
    requests.get(url)
  end = time.time()
  print("requests:")
  print( end - start )
     
 
async def aio_download(url):
  """ aiohttp 下載 """
 
  async with aiohttp.ClientSession() as session:
    await session.get(url)
 
 
async def test_aio():
  """ 測試aiohtpp請求百度100次時間 """
  url = "https://www.baidu.com"
  start = time.time()
  for i in range(100):
    await aio_download(url)
  end = time.time()
  print("aio: ")
  print( end - start )
 
 
if __name__ == "__main__":
 
  loop = asyncio.get_event_loop()
  loop.run_until_complete(test_aio())
 
  test_requests()

————————————————————————————————————————

-—————————————————————————————————————————

小貼士:

requests不要使用session進行反覆抓取一個網站的測試,因為從第2次開始,讀取的就是快取了,無論抓取50次還是100次或是更多,總時間都是1s以內。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。