【问题标题】:Handling windows authentication while accessing url using requests使用请求访问 url 时处理 windows 身份验证
【发布时间】:2015-08-31 06:58:18
【问题描述】:

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

我正在使用下面的代码来更早地使用请求访问 url。

program_list_response = requests.get(program_list_path,
                                                 data=self.body, headers=self.headers)

如何使用请求在后台通过认证?

【问题讨论】:

    标签: python python-requests python-3.4


    【解决方案1】:

    您可以为此使用Authentication 功能,以便为您要访问的链接提供凭据。

    例如:

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

    requests.get('https://website.com/user', auth=('user', 'pass'))
    

    如需了解更多详情,我推荐official docs

    为了处理 Windows 身份验证,我推荐Requests-NTLM

    例如:

    import requests
    from requests_ntlm import HttpNtlmAuth
    
    requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))
    

    【讨论】:

    • 记住所有不同的身份验证方法,例如虽然我尝试访​​问的设备是基本设备并且界面看起来很像,但我需要auth=HTTPDigestAuth('user', 'pass')
    • 对于未来的人来说,我已经花了一段时间寻找不同的选择,HttpNtlmAuth 解决方案是唯一对我有用的解决方案。
    • 要扩展这个主题,如果您已经登录到域,并且不想保留存储在脚本中的用户名和密码,请使用 requests-negotiate-sspi 而不是 requests_ntlm
    • @rayzinnz 很好的建议 - 这正是我正在寻找的。它实际上也是一个 PyPi 项目,可以通过 pip 安装:pypi.org/project/requests-negotiate-sspi
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2018-03-27
    • 2021-07-05
    • 1970-01-01
    • 2015-07-26
    • 2014-02-05
    • 2023-04-02
    • 2012-06-24
    相关资源
    最近更新 更多