Для такой веб-формы я всегда могу использовать 'name': 'value'
для отправки кнопки.
<form action="/login.php" method="post">
<button name="Submit_Button" type="submit" value="Submit">Press Here to Submit</button>
</form>
Python Code
>>> import requests
>>> url = 'https://127.0.0.1/login.php'
>>> payload = {'username': 'user123', 'passwd': 'pwd123', 'Submit_Button': 'Submit'}
>>> r = requests.post(url, data=payload, verify=False)
>>> r
<Response [200]>
>>> r.url
'https://127.0.0.1/successful.php'
>>>
Без кнопки отправки в коде, онане будет работать.
>>> import requests
>>> url = 'https://127.0.0.1/login.php'
>>> payload = {'username': 'user123', 'passwd': 'pwd123'}
>>> r = requests.post(url, data=payload, verify=False)
>>> r
<Response [200]>
>>> r.url
'https://127.0.0.1/login.php'
>>>
Страница входа
https://127.0.0.1/login.php
Если аутентификация прошла успешно, страница будет перенаправлена на
https://127.0.0.1/successful.php
Однако эта веб-форманемного отличается.
https://127.0.0.1/tmui/login.jsp
Я не вижу name
и value
в кнопке отправки.
<form id="loginform" name="loginform" action="logmein.html?" method="POST" onsubmit="return checkFormBeforeSubmit();" style="display: block;">
<label>Username</label>
<input type="text" class="login" name="username" id="username" tabindex="1" autocomplete="off">
<label>Password</label>
<input type="password" class="login" name="passwd" id="passwd" tabindex="2" autocomplete="off">
<button type="submit" tabindex="3">Log in</button>
</form>
Посмотрите на код кнопки отправки ... нет name
и value
в нем.
<button type="submit" tabindex="3">Log in</button>
Итак, я проверил это вручную, и вот мое наблюдение.
Если указан неверный пароль, страница будет перенаправлена на
https://127.0.0.1/tmui/login.jsp?msgcode=1&
и это сообщение появляется в форме
Message: `Login failed`
Если указан правильный пароль, страница будет перенаправлена на
https://127.0.0.1/xui/
Что мне нужно сделать, чтобы отправить такую форму с помощью PythonМодуль запросов?