如何使用Python和身份验证下载文件

时间:2017-07-20 06:39:09

标签: python download tar

我试图通过链接下载.tar文件,而不是直接下载到该文件。如果您浏览到该页面,则弹出窗口显示"选择要下载的路径"

网址如下所示:http://document.internal.somecompany.com/Download?DocNo=2/1449-CUF10101/1

我是python的新手。

到目前为止,这是我的代码项目的这一部分:

manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
manager.add_password(None, url, secrets["user"], secrets["password"])

#Create an authentication handler using the password manager
auth = urllib2.HTTPBasicAuthHandler(manager)

#Create an opener that will replace the default urlopen method on further calls
opener = urllib2.build_opener(auth)
urllib2.install_opener(opener)

#Here you should access the full url you wanted to open
response = urllib2.urlopen(url)
print response

打印回复返回:<addinfourl at 139931044873856 whose fp = <socket._fileobject object at 0x7f443c35e8d0>>

我不知道怎么走得更远,或者响应是否接近正确?我需要打开.tar并访问它中的raml文件,我不知道是否需要下载文件并打开它,或者直接打开它并打印出raml文件。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要以'wb'模式打开文件并写下您要下载的文件的内容,如下所示:

response = urllib2.urlopen(url)
with open(os.path.basename(url), 'wb') as wf:
            wf.write(response.read())

您也可以指定路径,而不是仅使用os.path.basename(url) 并查看tarfile以获取有关如何处理.tar文件

的更多信息