Авторизуйтесь автоматически, используя python - PullRequest
0 голосов
/ 27 февраля 2019

Итак, я видел, что есть пара похожих вопросов, но ни один из них не помог мне.Это страница входа, на которую я пытаюсь войти:

https://cas.lu.se/cas/login?service=http%3A%2F%2Fwww.ceq.lth.se%2Frapporter%2F%3Flasar_lp%3Dalla%26program%3Dsamtliga%26kurskod%3DEDAA45%26sort%3Dkurskod

Форма имеет следующий html:

<div class="box fl-panel" id="login">
                    <form action="/cas/login;jsessionid=C32FA3678B0093A4DB474BFD56858B6C?service=http%3A%2F%2Fwww.ceq.lth.se%2Frapporter%2F%3Flasar_lp%3Dalla%26program%3Dsamtliga%26kurskod%3DEDAA45%26sort%3Dkurskod" class="fm-v clearfix" id="fm1" method="post">

              Please enter your userid without "@lu.se" at the end.<br/><br/>
                        <div class="row fl-controls-left">
                            <label class="fl-label" for="username"><span class="accesskey">U</span>sername:</label>
                            <input accesskey="u" autocomplete="false" class="required" id="username" name="username" onblur="makeLowercase();" size="25" tabindex="1" type="text" value=""/>
                        </div>
                        <div class="row fl-controls-left">
                            <label class="fl-label" for="password"><span class="accesskey">P</span>assword:</label>
                            <input accesskey="p" autocomplete="off" class="required" id="password" name="password" size="25" tabindex="2" type="password" value=""/>
                        </div>
                        <div class="row btn-row">
                            <input name="lt" type="hidden" value="LT-61720-irxrtm4JCzVNIJ2pkpidljNGOw5KYX"/>
                            <input name="execution" type="hidden" value="e1s1"/>
                            <input name="_eventId" type="hidden" value="submit"/>
                            <input accesskey="l" class="btn-submit" name="submit" tabindex="4" type="submit" value="LOGIN"/>
                            <input accesskey="c" class="btn-reset" name="reset" tabindex="5" type="reset" value="CLEAR"/>
                        </div>
                    </form>
                </div>

Пока ямы попытались использовать urllib следующим образом:

from urllib import request, parse
auth = parse.urlencode({"username": "??",
                                "password": "??",
                                "lt": "LT-61720-irxrtm4JCzVNIJ2pkpidljNGOw5KYX",
                                "execution": "e1s1",
                                "_eventId": "submit",
                                "submit": "LOGIN", })
auth = auth.encode("ascii")
req = request.Request(url, 
with request.urlopen(url) as f:
    res = f.read()

Проблема в том, что единственное, что я получаю, - это HTML-код самой исходной страницы, а не страницы, которую предполагается загрузить после аутентификации.Я также не уверен, что атрибут действия содержится в теге формы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...