Как ускорить работу модулей для работы с 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 запросов?
  • Вопрос задан
  • 1878 просмотров
Решения вопроса 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 на этот урл
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы