Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Urllib работает очень медленно (> 4 секунд на запрос)

20.07.2015, 17:00. Показов 4145. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
urlib выполняет запросы ооооочень медленно (4-5 секунд), такое ощущение что он открывает IE, выполняет запрос, забирает результат, закрывает IE и только потом отдаёт содержимое. Проверено на 4х машинах с разными версиями Windows и разными версиями Python. На linux код отрабатывает за приличное время в районе 300мс, это конечно не так уж и быстро для get запроса, но вполне терпимо. Post работает так же, содержимое переганяю запросами в пределах 100 байт.
Сервер локально поднятый, отвечает за пару мс, так что сеть и серверную часть подозревать не стоит.
Логично что библиотеки для работы с http, которые я попробовал, работают так же так как все они похоже опираются на базовую реализацию и предоставляют лишь разнообразные обёртки вокруг стандартных модулей для работы с http.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
from urllib import request
import time
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
Результаты выполнения:
1437399996.929227
b"..."
1437400001.462487
b"..."
1437400005.995746
b"..."
1437400010.537006

Подскажите пожалуйста что может быть причиной и какие есть решения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2015, 17:00
Ответы с готовыми решениями:

Запрос работает очень медленно
Помогите мне ускорить работу запроса. Сам запрос имеет такой вид select x2.столбец1, x2.столбец2, xx.столбец1, x.столбец1,...

Urllib работает медленно
Здравствуйте. Все запросы через urllib выполняются достаточно долго( порядка 20-22 секунд). Даже самая простая загрузка страницы или...

BufferedReader очень медленно обрабатывает запрос json
Всем привет! У меня есть клиентское приложение, которое отправляет POST запрос на удаленный сервер. Сервер должен отправить ответ на...

8
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
21.07.2015, 05:45
Попробуйте requests
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 06:29
pyuser, Так requests же основан на базовых библиотеках, входящих в стандартную поставку языка.
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.07.2015, 11:02  [ТС]
alex925, всё верно. Я вообще requests и использую, но пример привёл именно чтобы подчеркнуть что системные библиотеки urlib любой версии работают так долго.
На текущий момент выяснил что работают они так долго только на машинах с windows 7 на работе, на домашнем пк, который незначительно превосходит тестовые по мощности, всё выполняется в рамках 300 мс. Но пока я не знаю что именно винить чтобы разбираться и как выйти из этого положения.
Возможно есть какие-то библиотеки для работы с http с кусками на си и не использующие системные пакеты для http?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 12:04
Gepar, Я сижу на linux и меня скорость выполнения запросов вполне устраивает (не было ситуации, когда запрос должен был выполнится за ограничение кол-во времени), по этому я этот вопрос не изучал и не искал пути решения.
Запрос скорее всего медленно выполняется из-за конкретной реализации сокетов.
Если хочешь попробовать работать с какой нить сишной библиотекой через python, то попробуй что нибудь в вроде PycURL.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.07.2015, 21:26  [ТС]
alex925, да вот как-то не вериться что за время жизни win7 никто из питоноводов не заметил такую проблему, я бы винил прокси (так как на работе они используются для внешней сети, кроме гугла, а дома соотв. прокси нет), но я их не настраиваю в своём коде да и при попытке получить сайт к которому нельзя без прокси ошибка вылетает сразу же что url недоступен, никаких тебе 4 мс задержек. Вот больше похоже что именно на получение тела ответа всё время и уходит, а заголовок оно хватает сразу.
Ладно, видимо придётся найти не тестовую машину с юниксом на работе чтобы поселить туда свои скрипты для общения с сервисом на постоянной основе, ато похоже моя проблема не сильно распространена (штук 5 тем на stackoverflow я находил, но всё они остались без ответа, почему и создал тему).
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 21:46
Цитата Сообщение от Gepar Посмотреть сообщение
за время жизни win7 никто из питоноводов не заметил такую проблему
Один раз такая тема тут поднималась, но чем кончилось все не помню.
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
27.07.2015, 13:34  [ТС]
Определил что питон под windows всё же топчеться на прокси, притом томпчеться на них он странно: он их не использует на моей машине с windows, а время тратит. Решением на windows стало:
Python
1
2
import os
os.environ['no_proxy'] = '127.0.0.1,localhost'
На линуксе работает примерно одинаково хоть с прокси, хоть без.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
29.07.2018, 20:44
Тема давно мертва, но так как в поиске по данной проблеме выдаётся первой строчкой, то поясню. Такое медленное выполнение - это особенность Windows 7 (без SP1). Чем, это обосновывается, я не знаю. Но этот же скрипт, который под Win7 грузится ~20c. под любой другой ОС работает моментально (Проверено на Win10, Ubuntu 16.04)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2018, 20:44
Помогаю со студенческими работами здесь

Интернет работает очень медленно на одном ПК, на другом работает быстрее.
Такая проблема, интернет очень плохо работает,скорость совсем маленькая (14м) подключаю другой комп в этот же кабель скорость(40м) в чём...

Очень медленно работает 1С 8.3?
С чем может быть связана медленная работа 1С? Есть терминальный сервер Windows Server 2003 x64. (2600 Мгц, 8Гб ОЗУ). БД хранятся...

Очень медленно работает ПК
День добрый. Помогите решить проблему. Имеется компьютер с Win 7 64. Машинка жестко тормозит. Сначала грешил на установленный Kaspersky...

Очень медленно выполняется запрос SQL на ТСД Windows CE 6.0
Добрый день ! начал писать некоторые программы для терминала сбора данных Моторола. сделал на VC2008, проект для smart devices. c#. ...

Почему PDO выполняет простой запрос очень медленно?
$id=$params; $sql="SELECT Brend,Model, size, number,price, summa FROM view_purchase_order WHERE id_order=:kod"; $stmt =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru