爬取矿大教务系统成绩

最近不太忙所以就把上次刚学python时,没能成功爬取教务系统成绩的代码又重新写了一下,但是这一写就是一段时间,其中想过很多方法,又尝试了很多方法,这过程中也摸索学到了一点知识,所以来总结一下吧。

首先打开矿大教务系统登录主页,先分析一下网页。

矿大教务系统

img

首先分析网站源代码

下面根据使用下方网址通过浏览器f12登陆进去后可以看到如下图所示的信息其中form表单有一个csrftoken,还有加密了的密码,所以简单的post用户名密码是登陆不进去网站的。

http://202.119.200.202/jwglxt/xtgl/login_slogin.html

1530798953033

右键查看源代码可以看到首先在密码处用了autocomplete=”off”,防止浏览器自动填充密码,这或许就是我用splinter一到密码处就输不进去报错的原因吧。或许也不是,毕竟selenium还是可以成功输入的。。。

然后还可以看到此处用了一个csrftoken,可以防止csrf攻击,这也是导致了我想先登录主页保存cookies在通过分析直接跳到得到的成绩页面来爬取成绩失败的原因。所以只能考虑直接访问成绩页面跳转到登录页面,登录成功后便可以爬取到成绩。

具体怎么找到成绩页面就是根据谷歌自带的工具F12一层一层看一下就能找到,具体不详细描述了。url如下。

http://202.119.206.62/jwglxt/cjcx/cjcx_cxDgXscj.htmldoType=query&gnmkdm=N305005


<div class="row sl_log_bor4">
            <div class="col-sm-8 hidden-xs sl_log_lf">
                <img class="img-responsive" src="http://202.119.206.62:80/zftal-ui-v5-1.0.2/assets/images/login_bg_pic.jpg" />
            </div>
            <div class="col-sm-4 sl_log_rt">
                <form class="form-horizontal" role="form" action="/jwglxt/xtgl/login_slogin.html" method="post">
                    <!-- 用了csrftoken防止csrf -->
                <input type="hidden" id="csrftoken" name="csrftoken" value="d6f6b735-2438-4476-a520-a4a7a237d110,d6f6b73524384476a520a4a7a237d110"/>
                    <h5>用户登录</h5>
                    <!-- 防止浏览器自动填充密码 -->
                    <input type="text" style="display: none;" autocomplete=
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值