Кажется, проблема в поддержке Javascript, глядя на источник при первой записи, мы видим это:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>SafeMLS® Error</title>
<link id="logincss" rel="stylesheet" href="https://cdn.clareitysecurity.net/css/login.css" />
<script src="https://cdn.clareitysecurity.net/js/remember.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript" src="https://cdn.clareitysecurity.net/sys/maxebrd/googletrack.js"></script>
<!--
LocalAddr: 172.16.17.42
LocalName: clt-web-pt01-a.safemls.net
ServerName: idp.maxebrd.safemls.net
-->
<script type="text/javascript">
if (isCookieEnabled() == false) {
alert("Error. Your browser does not have cookies enabled. This login page will not function without cookie support.");
document.location.href = "/idp/nocookies.jsp";
} else {
document.location.href = "https://maxebrdi.paragonrels.com/";
}
</script>
</body>
</html>
Так как requests
не имеет Javascript, мы должны вручную применить любой страница должна загружаться правильно.
Мы видим, что она перенаправляет нас на "https://maxebrdi.paragonrels.com/", что, вероятно, устанавливает правильные файлы cookie для использования на странице входа. К счастью, requests.Session()
делает это и перенаправления для нас по умолчанию.
import requests
headers = {
"Accept": "*/*",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
}
with requests.Session() as session:
username = "username"
password = "password"
data = {
"j_username": username,
"password": password,
"j_password": password,
"j_logintype": "sso" #seems to be constant
}
#first set cookies
session.get("https://maxebrdi.paragonrels.com/", headers=headers)
#then do login
result = session.post("https://idp.maxebrd.safemls.net/idp/Authn/UserPassword", headers=headers, data=data)
print(result.text)
Это возвращает сообщение «Пользователь не найден» (поскольку пароль указан неверно).
Я предлагаю вам использовать Javascript отключение расширений, очистить куки-файлы страницы и повторно посетить, чтобы вы могли смотрите веб-страницу точно так же, как requests
, также следите за вкладкой «Сеть», чтобы увидеть, какие запросы поступают из вашего браузера, и реплицируйте ее в своем скрипте.