帮助Python urllib2和开启者 - 如何只读取1个远程文件

时间:2010-09-15 21:34:51

标签: python urllib2

我正在尝试从每次访问文档时向我收费的内容提供商下载内容。我编写的代码正确下载内容并将其保存在本地文件中,但显然它要求文件两次,我正在双重收费。我不确定两次请求文件的位置,这是我的代码:

    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 个答案:

答案 0 :(得分:1)

可能是请求该文件两次,但只下载一次吗?第一个请求是普通的GET(没有“授权”头),然后是HTTP 401(需要授权)的响应,然后是与Authorization头相同的请求。

如果是这种情况,那么您与内容提供商谈谈,因为您只访问了一次。