Я пытался реализовать подобную вещь здесь и здесь .
В основном я просто хочу войти на сайт и получить подтверждение, если HTTP/ S аутентификация прошла успешно или нет.
К сожалению, ни одна из попыток ниже не работает. Я понятия не имею, была ли попытка входа успешной или нет, поскольку я получаю тот же <Response [200]>
, не имеет значения, правильный или неправильный пароль.
Я также проверил трафик HTTP. Если вход не выполнен, на странице входа будет отображаться следующее сообщение (http://localhost/test/login.php)
<div class="message">Login failed</div>
Если вход выполнен успешно, страница будет перенаправлена на index.php
http://localhost/test/index.php
HTML-форма на странице входа в систему (http://localhost/test/login.php)
<form action="login.php" method="post">
<fieldset>
<label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br>
<label for="pass">Password</label> <input type="password" class="loginInput" autocomplete="off" size="20" name="password"><br>
<p class="submit"><input type="submit" value="Login" name="Login"></p>
</fieldset>
</form>
Следующий код 1 - 5 выдаст <Response [200]>
, в то время как код 6 отобразит страницу входа, не имеет значения, если имя пользователя / парольнеправильно.
код 1
import requests
url = 'http://localhost/test/login.php'
payload = {'username': 'admin', 'password': 'wrongpwd'}
requests.post(url, data=payload)
код 2
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = 'http://localhost/test/login.php'
payload = { 'username': 'admin', 'password': 'wrongpwd' }
requests.post(url, data=payload, verify=False)
код 3
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','pass':'wrongpwd'}
session = requests.Session()
resp = session.get(url,headers=headers)
cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies))
resp = session.post(url,headers=headers,data=payload,cookies=cookies)
session.get(url)
Код 4
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','password':'wrongpwd'}
session = requests.Session()
session.post(url,headers=headers,data=payload)
Код 5
import requests
from requests.auth import HTTPBasicAuth
url = 'http://localhost/test/login.php'
requests.get(url, auth=HTTPBasicAuth('admin', 'wrongpwd'))
Код 6 (просто отобразите страницу входа в систему)
import requests
url = 'http://localhost/test/login.php'
values = {'username': 'admin', 'password': 'wrongpwd'}
r = requests.post(url, data=values)
print(r.content)
Что я должен сделать, чтобы получить подтверждение, если вход успешный или нет?
Желаемый вывод
Login successful
или
Login failed
Если мой вопрос не был ясен или вам нужны дополнительные объяснения, пожалуйста, дайте мне знать.