吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3179|回复: 15
收起左侧

python爬取教务系统成绩

[复制链接]
夸克逃逸 发表于 2019-8-22 21:38
50吾爱币
        我又来了。最近被python搞得自闭。我自学python想爬取教务处成绩,但是我们学校教务处的正方系统脾气太大,输入学号和密码一直提示错误。所以我只能先从学校首页登录然后直接进入教务系统。但是问题是,网上关于教务系统的成绩爬取都是直接从正方系统首页进入的,cookies一样,使用session然后用正则筛选就行了(至少我是这样理解的)。但是
        (1)我们学校先要从学校首页登录到“个人页面”,而且这个登录是从i.swu.edu.cn/portal_main/toPortalPage(学校校内门户页面,需要v*p*n)到i.swu.edu.cn/PersonalApplications/viewPageV3?active_nav_num=1&userToken=VEdULTQyNS1Gcmh2dGswZ3pRd2ZnR0tTeGNmR2h0d3lQaWFMTG1RdVRkVWU3Tm45T2JJYTRZYU9BTi1odHRwOi8vMjIyLjE5OC4xMjAuMjA4OjgwODIvY2Fz(个人页面),post请求不是从前面那个网址发出的。我点击登录有一个名为“process”请求,post表单里面有一个serviceInfo,是把账号和密码以及其他很多信息加密后得到的一串东西,我前一个帖子已经解决了相关的加密问题,感谢那位大佬。
        (2)然后是从这个“个人页面”直接进入正方教务系统。即从i.swu.edu.cn/PersonalApplications/viewPageV3?active_nav_num=1&userToken=VEdULTQyNS1Gcmh2dGswZ3pRd2ZnR0tTeGNmR2h0d3lQaWFMTG1RdVRkVWU3Tm45T2JJYTRZYU9BTi1odHRwOi8vMjIyLjE5OC4xMjAuMjA4OjgwODIvY2Fz直接点击进入到jw.swu.edu.cn/jwglxt/xtgl/index_initMenu.html?jsdm=&_t=1566479686407(正方页面)(这就是正方教务系统了,不知道是不是跨域了,我是个小白基础挺差的)。
        现在的问题是:我能够通过post请求得到第(2)步里面的usertoken了(是通过process请求获得的),但是现在直接用get去访问个人页面肯定是不能的,因为这样不能与前面的登陆联系起来(我是这样理解的),而且cookies也变了。所以我在python里面运行后得到的依旧是登录成功之前的结果,也就是校内门户页面
        请问各位大哥有没有什么想法给个指点呗。我记得之前有人跟我说用selenium,但是我试了一下selenium,会自动打开我的浏览器,这样我觉得太不方便了。
        我研究这个问题研究了一个星期了毫无头绪,我真的要疯了,每天就盯着电脑颓废,去问别人要么别人不回我要么就是也不清楚,我好难啊,我不想入门就放弃啊。

最佳答案

查看完整内容

楼主私信我联系方式 帮你搞定一下 顺便我自己练练手~

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

q6378561 发表于 2019-8-22 21:38
楼主私信我联系方式  帮你搞定一下  顺便我自己练练手~

免费评分

参与人数 1吾爱币 +1 收起 理由
海之魂 + 1 大佬出手

查看全部评分

cosct 发表于 2019-8-22 22:35
林海山河 发表于 2019-8-22 23:57
 楼主| 夸克逃逸 发表于 2019-8-23 00:25
wujiakang 发表于 2019-8-22 22:35
cookies的问题可以用session自动管理

,,,,,我以为的是cookies相同是可以通过session来管理的,但是我的问题是cookies改变了啊。我只有一个session去分别弄两个甚至三个cookies?或者我用多个session?那我咋保证访问教务系统的时候它能确认我是校内门户——>个人页面——>这样来的?
广州最 发表于 2019-8-23 10:35
换个方式处理问题:悬赏让吾爱大神帮你用  python爬取教务系统成绩,大神爬完后再让大神分享一下 源码,这样你又可以解决问题,又可以了解新的知识(大神把源码分享给你,给个红包也不过分呢,并且都阻碍你一个星期了)
cosct 发表于 2019-8-23 11:49
夸克逃逸 发表于 2019-8-23 00:25
,,,,,我以为的是cookies相同是可以通过session来管理的,但是我的问题是cookies改变了啊。我只有一个sess ...

你第二步从个人页面进入教务系统的时候,应该是由教务系统验证你的token或者cookies,然后教务系统服务端重新set-cookies,你可以将这个请求存为一个新的session来管理cookies或者手动管理都可以的,后面的请求用新的这个session来发请求就好
井右寺 发表于 2019-8-23 12:21
楼主可以去了解以下 session、cookie机制

requests.session是可以管理多个cookie的。。。。如果涉及两个不同的域,那么也就是说必然存在两个会话,翻译成英语,也就是session。
所以说,不同的域用不同的session来保存,往哪个域请求访问就用那个session就好了。。。。
关于页面跳转的,你没必要那么固定,有很多页面其实访问不访问都无所谓的。。。。
把哪些会修改cookie的页面爬一下(一般这些页面都会比较有意义,但是其实我还没有见过用cookie来做身份认证的),session会自动帮你管理更新。。。
一般来讲,带密码访问登录页之后,你就可以直接用这个session访问别的页面了(基于session认证的)。。。。
还有一种就是带token认证的,注意token被携带在哪里,有的页面请求必须要携带token的。。。。。
总而言之,再多抓抓包吧。。。。。筛出不需要的请求。。。。
还有就是注意请求头。

 楼主| 夸克逃逸 发表于 2019-8-23 13:57
广州最 发表于 2019-8-23 10:35
换个方式处理问题:悬赏让吾爱大神帮你用  python爬取教务系统成绩,大神爬完后再让大神分享一下 源码,这 ...

我是想自己做的哈,感觉让大佬给我指导我自己去做好一点儿。全让大神做了我自己去消化理解就觉得就没什么感觉了。
 楼主| 夸克逃逸 发表于 2019-8-23 14:22
井右寺 发表于 2019-8-23 12:21
楼主可以去了解以下 session、cookie机制

requests.session是可以管理多个cookie的。。。。如果涉及两个 ...

我的问题就是,,,,我这个很特殊,我的密码不是直接在登录页发送的,而是点击登陆后出现的一个名为process请求里面post的。响应个人页面的请求又是另外一个。现在我如果用两个session,那我输入账号密码岂不是白做了嘛。我没有看到有token,不过个人页面的请求时get类型的,网址后面有一个usertgt,我试过获取后加上去访问不过没有用依然是校内门户页面。
快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 22:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表