2012-06-09 5 views
0

URLLIB для питона, кажется, incedibly медленно при загрузке файла (с помощью многослойных/форм-данных)Python urllib2 медленной загрузка

браузер (Chrome) делает его менее чем за 20 секунд, в то время как скрипт использует почти я минуту для того же файла.

Я использую urllib2 для подключения и плакат для создания заголовков и данных http, версия python под вопросом - 2.7.

def upSong(fileName): 
    datagen, headers = multipart_encode({"mumuregularfile_0": open(fileName, "rb")}) 

    uploadID = math.floor(random.random()*1000000) 
    request = urllib2.Request("http://upload0.mumuplayer.com:443/?browserID=" + browserID + "&browserUploadID=" + str(uploadID), datagen, headers) 

    urllib2.urlopen(request).read() 

Есть ли способ ускорить питон/urllibs соединения, или это просто ограничение на языке Python?

EDIT: следует отметить, что я уже проверил все детали, и это, без сомнения, urllib.read()

+0

Вы измерили свою функцию, чтобы увидеть, где она на самом деле работает медленно? т. е. это 'multipart_encode'? 'Urlopen'? – zigg

ответ

1

хрома, вероятно, использовали сжатие (если поддерживается веб-сайт), в то время как URLLIB не выглядит как использование его (grepping «gz» или «bz» не дает результата).

Я не уверен в этом, но Хром также может быть более эффективен, чем традиционные соединения с помощью сокетов хаков или что-то ...

+0

Есть ли способ, которым я могу эмулировать сжатие, потому что кажется, что сервер действительно принимает данные G-zipped (смотря на заголовки) –

0

вы можете добавить некоторые функции времени репортера после линий. тем самым вы сможете указать, какой шаг снижает скорость или занимает больше времени. он также может меняться в зависимости от скорости сети ...

+0

Я уже это сделал, медленной частью является urllib2.url.open (request). read(). не вопрос об этом. –

+0

, тогда может возникнуть проблема со скоростью сети или скоростью соединения. – Ovisek

+0

Как указано в исходном вопросе, Chrome загружается примерно в 3 раза быстрее, это может быть связано с сжатием, как сказал Валентин, мне, возможно, придется изучить это. –

Смежные вопросы