帮助解决Python urllib2和opener - 如何只读取1个远程文件

0 投票
1 回答
715 浏览
提问于 2025-04-16 04:12

我正在尝试从一个收费的内容提供商那里下载内容,每次我访问一个文档时都会被收费。我的代码能够正确下载内容并将其保存在本地文件中,但似乎它请求文件的次数是两次,这让我被重复收费。我不太确定文件是在哪里被请求了两次,这里是我的代码:

    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

是不是有可能它 请求 这个文件两次,但实际上只下载了一次?第一次请求是普通的GET请求(没有“授权”头),然后服务器返回一个HTTP 401的响应(需要授权),接着又发出同样的请求,这次带上了授权头。

如果真是这样,你应该和你的内容提供者沟通,因为你实际上只访问了一次。

撰写回答