Возможны следующие варианты:
- измерение момента времени до запроса
- измерение момента времени после запроса
- разница в времени ответа
- с помощью response.text () вы получите ответ и можете определить длину с помощью len ()
Небольшой автономный пример может выглядеть так:
import time
import asyncio
from aiohttp import ClientSession
async def fetch(session, url):
start = time.time()
async with session.get(url) as response:
result = await response.text()
end = time.time()
print(url, ": ", end - start, "response length:", len(result))
return result
async def crawl(urls: set):
async with ClientSession() as session:
tasks = []
for url in urls:
tasks.append(
fetch(session, url)
)
await asyncio.gather(*tasks)
if __name__ == "__main__":
urlSet = {"https://www.software7.biz/tst/number.php",
"https://www.software7.biz/tst/number1.php",
"https://www.software7.biz"}
asyncio.run(crawl(urlSet))
Тест
Две конечные точки number.php и number1.php имеют задержку на стороне сервера 3 соответствующих 1 секунды и возвращают двузначное число каждый.
Выходные данные в консоли отладки выглядят так:
https://www.software7.biz : 0.16438698768615723 response length: 4431
https://www.software7.biz/tst/number1.php : 1.249755859375 response length: 2
https://www.software7.biz/tst/number.php : 3.214473009109497 response length: 2