从https下载带有身份验证的文件

时间:2016-02-13 04:15:34

标签: python urllib2 python-2.6

我有一个Python 2.6脚本,可以从Web服务器下载文件。我希望这个脚本传递用户名和密码(在获取文件之前进行身份验证),我将它们作为URL的一部分传递,如下所示:

z-index

但是,在这种情况下,我收到语法错误。这是正确的方法吗?我对Python和编码很新。 有人可以帮帮我吗? 谢谢!

3 个答案:

答案 0 :(得分:10)

如果您可以使用requests库,那就太简单了。如果可能的话,我强烈建议使用它:

import requests

url = 'http://somewebsite.org'
user, password = 'bob', 'I love cats'
resp = requests.get(url, auth=(user, password))

答案 1 :(得分:5)

我想您正在尝试通过基本身份验证。在这种情况下,您可以这样处理:

import urllib2

username = 'user1'
password = '123456'

#This should be the base url you wanted to access.
baseurl = 'http://server_name.com'

#Create a password manager
manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
manager.add_password(None, baseurl, username, 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(baseurl + "/file")

答案 2 :(得分:0)

使用请求库,只需将凭据放在.netrc文件中。

库将从那里加载它们,您将能够将代码提交给您选择的SCM,而不会出现任何安全问题。