我的 vb.net Web 应用程序中有一个简单的表单,用户使用它来登录网站。
我正在尝试使用 Python 3 和 Python Requests HTTP 库来模拟用户登录。
当我运行 python 脚本时,'get' 和 'post' 状态码都得到了 '200'。
但是当我在发布后打印出返回的文本时,它只会打印出登录页面的 HTML。
我对 Python 很陌生,但我认为它应该可以工作,但我可能遗漏了一些东西。
这是我的python代码:
import requests
returnText = ''
r = requests.get('https://myappurl/Login.aspx')
returnCode = r.status_code
returnText = r.text
print('Get Status: ', returnCode)
# print('results: ', returnText)
headers = {'User-Agent': 'Mozilla/5.0'}
payload = {'loginName':'admin','password':'abc123'}
session = requests.Session()
s = session.post('https://myappurl/Login.aspx',headers=headers,data=payload)
print('Post Status: ', s.status_code)
print('form cookies: ', session.cookies)
print('returned text: ', s.text)
这是 vb.net 代码:
登录.aspx:
<form id="frmLogin" runat="server" defaultfocus="txtEmail">
<div>
<label for="txtEmail">Email:</label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</div>
<div>
<label for="txtPassword">Password:</label>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</div>
<div>
<a href="#" onclick="document.forms['frmLogin'].submit();return false;" id="submit-btn">
LOG IN
</a>
</div>
</form>
当用户单击登录链接时,这称为:
登录.aspx.vb:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' *** when user clicks the form "submit" button, this is loaded ***
Call ValidateLogin()
End Sub
Here are the two relevant methods:
Sub ValidateLogin()
' *** get the values inside the textEmail and txtPassword TextBox controls
Dim loginName As String = txtEmail.Text
Dim password As String = txtPassword.Text
Dim loginMessage As String = String.Empty
loginMessage = AuthUser(loginName, password)
If loginMessage = "success" Then
' *** user is authenticated, load main web app screen ***
End If
End Sub
Public Shared Function AuthUser(ByVal loginName As String, ByVal password As String) As String
' *** lots of code that checks "loginName" and "password" against a database call ***
' *** if both loginName and password are good then return "success"
Return "Success"
End Function
我期待在成功登录后看到返回的下一页的文本(html),这是一个游戏列表。
我已检查以确保登录名和密码正确。当我正常登录网站时,它们工作正常。
我需要在我的 Python 脚本中做些什么或修复什么才能成功登录吗?
谢谢!