使用Python请求获取401身份验证错误,wget函数正确

时间:2016-11-07 12:22:07

标签: python wget

我尝试从提供商处下载zip文件,使用wget正常工作:

wget -c --http-user=MY_UN --http-password=MY_PW "https://datapool.asf.alaska.edu/GRD_MD/SA/S1A_EW_GRDM_1SDH_20151003T040339_20151003T040351_007983_00B2A6_7377.zip"

然而,使用Python Requests库我使用相同的凭据获得401错误,是否有人知道为什么会这样,或者在哪里开始理解问题?

url = "https://datapool.asf.alaska.edu/GRD_MD/SA/S1A_EW_GRDM_1SDH_20151003T040339_20151003T040351_007983_00B2A6_7377.zip"    
r = requests.get(url, auth=("MY_UN", "MY_PW"), stream = True)

我应该提一下,我已经检查了四个细节,两者都是正确的。 Python中有替代方法吗?

与此同时,我不得不使用os包生成一个wget:

os.system("wget -c --http-user=MY_UN--http-password=MY_PW 'https://datapool.asf.alaska.edu/GRD_MD/SA/S1A_EW_GRDM_1SDH_20151003T040339_20151003T040351_007983_00B2A6_7377.zip'")

2 个答案:

答案 0 :(得分:0)

我建议尝试以下方法:

session = requests.Session()
session.trust_env = False # to bypass a proxy
r = session.get(url, verify=False) # or if there is a certificate do verify='file.cer'

答案 1 :(得分:0)

我遇到了类似的问题,我使用HTTPDigestAuth而不是HTTPBasicAuth解决了该问题。

from requests.auth import HTTPDigestAuth
requests.get(url, auth=HTTPDigestAuth('mylogin', 'mypassword'))