Python web/server 认证
Python web/server authentication
我正在尝试创建一个非常基本的应用程序,它能够连接到托管我的大学作业、成绩等的网络服务器,并在有新内容时通知我。目前我正在尝试掌握请求模块的窍门,但我无法登录,因为服务器使用 this 类型的身份验证,它给我错误 401 unauthorized.
我尝试搜索如何向尝试使用套接字的 Web 服务器进行身份验证,但没有成功。你能帮我看看怎么做吗?
编辑:我正在使用 python 3.4
检查 URL 的响应中的 headers 后,我认为服务器正在尝试使用 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'))
他们可能不提供用于授权请求的程序化 API。如果是这种情况,您可以尝试使用 selenium 手动打开浏览器并为您填写详细信息。 Selenium 显然也有处理警告框的功能,虽然我自己没用过。
您需要在套接字请求 header 中附加一个简单的身份验证 header。
示例;
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'))
我正在尝试创建一个非常基本的应用程序,它能够连接到托管我的大学作业、成绩等的网络服务器,并在有新内容时通知我。目前我正在尝试掌握请求模块的窍门,但我无法登录,因为服务器使用 this 类型的身份验证,它给我错误 401 unauthorized.
我尝试搜索如何向尝试使用套接字的 Web 服务器进行身份验证,但没有成功。你能帮我看看怎么做吗?
编辑:我正在使用 python 3.4
检查 URL 的响应中的 headers 后,我认为服务器正在尝试使用 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'))
他们可能不提供用于授权请求的程序化 API。如果是这种情况,您可以尝试使用 selenium 手动打开浏览器并为您填写详细信息。 Selenium 显然也有处理警告框的功能,虽然我自己没用过。
您需要在套接字请求 header 中附加一个简单的身份验证 header。
示例;
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'))