Python Web /服务器身份验证

时间:2016-03-03 19:39:59

标签: python authentication webserver python-requests

我正在尝试创建一个非常基本的应用程序,该应用程序将能够连接到托管我的大学作业,结果等的Web服务器,并在有任何新内容时通知我。目前我正在尝试获取请求模块的挂起,但我无法登录,因为服务器使用this类型的身份验证,它给了我401未经授权的错误。

我尝试搜索如何使用套接字尝试对Web服务器进行身份验证,但没有运气。你能帮我找一下怎么做吗?

编辑:我正在使用python 3.4

3 个答案:

答案 0 :(得分:2)

在检查该网址的响应中的标头后,我认为服务器正在尝试使用NTLM authentication

尝试安装requests-ntlm(例如使用pip install requests_ntlm)然后执行此操作:

import requests
from requests_ntlm import HttpNtlmAuth

requests.get('http://moodle.mcast.edu.mt:8085/',
    auth=HttpNtlmAuth('domain\\username', 'password'))

答案 1 :(得分:0)

他们可能无法提供用于授权请求的编程API。如果是这种情况,您可以尝试使用selenium手动打开浏览器并为您填写详细信息。虽然我自己还没有使用它,但Selenium显然已经处理了警示框。

答案 2 :(得分:0)

您需要在套接字请求标头中附加一个简单的身份验证标头。

实施例

import base64

mySocket.send('GET / HTTP/1.1\r\nAuthorization: Basic %s\r\n\r\n' % base64.b64encode('user:pass'))

Python 3x;

import base64

template = 'GET / HTTP/1.1\r\nAuthorization: Basic %s\r\n\r\n'
mySocket.send(bytes(template % base64.b64encode(bytes('user:pass', 'UTF-8')), 'UTF-8'))