Помощь с Python urllib2 и программами открывания - Как сделать так, чтобы только 1 удаленный файл читался - PullRequest
0 голосов
/ 16 сентября 2010

Я пытаюсь загрузить контент от провайдера контента, который взимает плату каждый раз, когда я получаю доступ к документу. Код, который я написал правильно, загружает контент и сохраняет его в локальном файле, но, очевидно, он запрашивает файл дважды, и мне платят двойную плату. Я не уверен, где файл запрашивается дважды, вот мой код:

    password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()        
    # Add the username and password.
    password_mgr.add_password(None, top_level_url, username, password)        
    handler = urllib2.HTTPBasicAuthHandler(password_mgr)        
    # create "opener" (OpenerDirector instance)
    opener = urllib2.build_opener(handler)        
    # use the opener to fetch a URL
    file_stream = opener.open(url)        

    # Open our local file for writing
    local_file = open(directory + doc_name, "w+")
    #Write to our local file
    local_file.write(file_stream.read())

Мне нужно выяснить, как читать содержимое, запрашивая документ только один раз. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 17 сентября 2010

Может ли быть так, что запрашивает файл дважды, но загружает его только один раз?Первым запросом будет обычный GET (без заголовка «Authorization»), за которым следует ответ HTTP 401 (Authorization Required), за которым следует тот же запрос с заголовком Authorization.

Если это так, вы должны поговорить со своим поставщиком контента, поскольку вы получили к нему доступ только один раз.

...