@Headballz

Как авторизоваться на сайте с выпадающим списком (домен), используя request?

Есть сайт servicedesk
5d24ec76132a8958103852.png

Есть рабочий скрипт для локальной авторизации
s = requests.Session()
url = 'https://~.ru/j_security_check'
s.get(url)
data = dict(j_username='test', j_password='test')
s.post(url, data=data)


Хочу выполнить вход под доменной у/з, j_security_check ругается.

Смотрел по Network в IE (F12) в POST, там примерно следующее:

Для локальной (успешный вход)

j_username=test&j_password=test&domain=Local+Authentication&LDAPEnable=false&hidden=Select+a+Domain&hidden=For+Domain&AdEnable=true&DomainCount=0&LocalAuth=No&LocalAuthWithDomain=No&dynamicUserAddition_status=true&localAuthEnable=true&logonDomainName=Local+Authentication&loginButton=


Для доменной (успешный вход)

AUTHRULE_NAME=SDRelationalLoginModule&j_username=user&j_password=userpass&domain=3&DOMAIN_NAME=DOMEN&LDAPEnable=false&hidden=Select+a+Domain&hidden=For+Domain&AdEnable=true&DomainCount=0&LocalAuth=No&LocalAuthWithDomain=DOMEN&dynamicUserAddition_status=true&localAuthEnable=true&logonDomainName=DOMEN&loginButton=


Пробовал код:
s = requests.Session()
url = 'https://~.ru/j_security_check'
s.get(url)
data = dict(j_username='user', j_password='userpass', domain='3', DOMAIN_NAME='DOMEN',
            LocalAuthWithDomain='DOMEN', logonDomainName='DOMEN')
s.post(url, data=data)


Не помогло.
Сам блок выбора домена:
<span id="domainListSelect" style="display:block;">
            <select name="domain" class="form-control" onchange='checkLocalAuth(this)'>
              <option>-- Choose Domain --</option>

              <option value="1"> DOMEN1 </option> <!-- NO OUTPUTENCODING -->

              <option value="2"> DOMEN2 </option> <!-- NO OUTPUTENCODING -->

              <option value="3"> DOMEN</option> <!-- NO OUTPUTENCODING -->

              <option value='Local Authentication'>Local Authentication</option>

            </select>
          </span>


Как реализовать выбор домена в POST?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Ну вообще можно использовать selenium, но он много где детектируется так что может и не поможет :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zarom
@Zarom
Мастер на все руки из жопы
Передавайте необходимое значение value из option - "1", "2", "3" или 'Local Authentication'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YLab Тольятти
от 90 000 до 150 000 руб.
от 60 000 до 120 000 руб.
16 июл. 2019, в 13:48
15000 руб./за проект
16 июл. 2019, в 13:42
10000 руб./за проект