Как ускорить работу модулей для работы с http в python?

Почему-то очень долго выполняются любые http запросы в python. Приведённый код выполняется почти 20 секунд, хотя в нём всего лишь 4 get запроса на один и тот же url (обращаюсь к локальному серверу, он отвечает за считанные мс, длина содержимого ~ 100 байт). Приведу свой тестовый код (версию для Python 3).

# -*- coding: utf-8 -*-
from urllib import request
import time
print (time.time())

url = 'http://localhost'
print (request.urlopen(url).read())
print (request.urlopen(url).read())
print (request.urlopen(url).read())
print (request.urlopen(url).read())

print (time.time())


Код проверял на нескольких компьютерах c ОС Windows и разными версиями питона (от 2.7 до 3.4): всюду результат выполнения примерно одинаковый. На машине с Kubuntu проблема не проявилась и каждый http запрос выполнялся примерно 300-400мс, что не идеально, но значительно лучше.

Как можно ускорить выполнение моих get запросов?
  • Вопрос задан
  • 1793 просмотра
Решения вопроса 1
gepar
@gepar Автор вопроса
Определил что 95% времени тратилось на инициализацию работы с прокси. Притом, что это не совсем логично так как они всё равно не загружались и запрос шёл мимо прокси. Если например попробовать обратиться к url'у к которому доступ разрешён только через прокси то без явного его прописывания в коде питона запрос не выполниться.

Решение моей проблемы на Windows:
os.environ['no_proxy'] = '127.0.0.1,localhost'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
un1t
@un1t
Ну 20 секунд это многова-то, не ясно почему так. 300-400 вполне нормально, учитывая, что сайты могут примерно столько страницу и отдавать. Чтобы ускорить два варианта либо делать больше воркеров, либо писать асинхронно.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
если нужно просто скачать много страниц - попробуйте Мультикурл

https://github.com/Lispython/pycurl/blob/master/ex...
python2or3.blogspot.com/2015/05/python-multi-curl.html
Ответ написан
kivsiak
@kivsiak
software engineer
Терзают меня сомнения что питон тут вообще причём. Сделай обычный ab на этот урл
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы