Запросы Python: как точно обрабатываются последующие request.get?

import requests

for i in range(3):
    g = requests.get('http://some-url/')
    print "request done"

При каждом запуске запроса ожидает ли он ответа (полностью завершенная загрузка ответа) перед выполнением следующего запроса?

Я сравнил время, необходимое для выполнения этих запросов, с запросами из моего браузера, и время загрузки намного быстрее с запросами. Я не уверен, что это исключительно из-за того, что мой браузер выполняет javascript, загружает изображения и т. Д., Или также из-за того, как работают запросы.


person Bentley4    schedule 02.02.2013    source источник


Ответы (2)


Да, каждый запрос выполняется синхронно, поэтому следующий начнется только после завершения предыдущего. Цитата из примечаний к выпуску:

0,13.0 (29 мая 2012 г.)

Удаление Requests.async в пользу grequests

person mgibsonbr    schedule 02.02.2013

Да, requests.get - синхронная операция. Он ожидает, пока содержимое страницы будет загружено в Python как str. Разница во времени, которую вы видите, действительно связана с выполнением javascipt и загрузкой дополнительных файлов в браузере.

В веб-консоли firefox вы можете увидеть время, необходимое для загрузки содержимого страницы. Это время должно быть примерно равно времени, которое вы видите с запросами.

person RickyA    schedule 02.02.2013