Python - загрузка файла по HTTP с индикатором выполнения и базовой аутентификацией - PullRequest
8 голосов
/ 15 января 2009

Я использую urllib.urlretrieve для загрузки файла и реализую индикатор выполнения загрузки с помощью параметра reporthook. Поскольку urlretrieve напрямую не поддерживает аутентификацию, я придумал

import urllib

def urlretrieve_with_basic_auth(url, filename=None, reporthook=None, data=None,
                                username="", password=""):
    class OpenerWithAuth(urllib.FancyURLopener):
        def prompt_user_passwd(self, host, realm):
            return username, password

    return OpenerWithAuth().retrieve(url, filename, reporthook, data)

Это работает - но кажется, что может быть более прямой способ сделать это (возможно, с помощью urllib2, httplib2 или ...) - есть идеи?

1 Ответ

7 голосов
/ 15 января 2009

urlgrabber имеет встроенную поддержку индикаторов выполнения, аутентификации и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...