我试图通过链接下载.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文件。
有什么建议吗?
答案 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
文件