使用请求访问URL时处理Windows身份验证

Sri*_*nth 8 python python-requests python-3.4

我正在使用python请求库来访问soap请求.它工作正常.由于我们的域名结构发生了变化.我无法访问该网址,它总是提示我输入凭据.

在此输入图像描述

我使用下面的代码使用请求更早地访问网址.

program_list_response = requests.get(program_list_path,
                                                 data=self.body, headers=self.headers)
Run Code Online (Sandbox Code Playgroud)

如何使用请求在后台传递身份验证?

ρss*_*ρss 19

您可以使用身份验证功能,以便为您要访问的链接提供凭据.

对于例如:

您可以使用以下格式传递用户名和密码:

requests.get('https://website.com/user', auth=('user', 'pass'))
Run Code Online (Sandbox Code Playgroud)

有关详细信息,我会推荐官方文档.

为了处理Windows身份验证,我建议使用Requests-NTLM.

例如:

import requests
from requests_ntlm import HttpNtlmAuth

requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))
Run Code Online (Sandbox Code Playgroud)

  • 要扩展此主题,如果您已经登录到域,并且不想将用户名和密码存储在脚本中,请使用 [requests-negotiate-sspi](https://github.com/brandond/ requests-negotiate-sspi) 而不是 requests_ntlm (3认同)
  • 对于未来关注此问题的人,我花了一段时间寻找不同的选项,而“HttpNtlmAuth”解决方案是唯一适合我的解决方案。 (2认同)