使用python自动登录

时间:2019-02-27 18:11:30

标签: python html authentication login

所以我已经看到有两个类似的问题,但是没有一个对我有用。这是我要登录的登录页面:

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,而不是验证后应该加载的页面。我也不确定form标签中的action属性是什么...

0 个答案:

没有答案