BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #7777同步于 2015/7/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

怎么自动登录教务查成绩

wjx
2015/7/11镜像同步2 回复
刚开始学pthon,写了一个爬图片和段子的程序。现在想着写一个自动登录教务查成绩的程序,但是发现,POST的headers和data不会填写,也不知道这两个都是什么意思,那些需要填写。这是POST的头 这是POST的data 下面是我写的POST的haders headers = {} headers['Accept'] = 'application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*' headers['Referer'] = 'http://jwxt.bupt.edu.cn/' headers['Accept-Language'] = 'zh-CN' headers['Content-Type'] = 'application/x-www-form-urlencoded' headers['Accept-Encoding'] = 'gzip, deflate' headers['User-Agent'] = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)' headers['Host'] = 'jwxt.bupt.edu.cn' headers['Content-Length'] = '48' headers['Connection'] = 'Keep-Alive' headers['Cache-Control'] = 'no-cache' headers['Cookie'] = 'JSESSIONID=abc_cFOuipA_A-0Tks85u' 还有data postData = {} postData['type'] = 'sso' postData['zjh'] = 'xxxx' postData['mm'] = 'xxxx' postData['v_yzm'] = ‘ufhd’ 这样写的headers和data对吗? 顺便问一下,验证码的问题怎么解决?手动输入也行,但是现在我打开源码,不知道那个是验证码的url,求指导。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
hansnow机器人#1 · 2015/7/11
唔...做教务系统相关东西的时候,一个比较坑的地方在于所有的东西都是靠cookie控制的,很多时候表单具体提交了什么甚至都不重要,只要请求的地址和cookie对就行。所以建议楼主在第一次请求的时候还是不要带cookie了,让网站给你set-cookie,然后一直用它给你的cookie就好,要不然和浏览器cookie相同的话可能会出现一些莫名其妙的问题。 我恰好写过一个教务登录的东西,用tk做的GUI。项目地址是:https://github.com/hansnow/bupt_pingjiao_gui 界面长这样 填好用户名密码和验证码之后点击登录会跳到另一个界面,同时控制台会有相关输出。 回到楼主的问题上,登录相关的代码大概就长这样了: payload = { "type": "sso", "zjh": data[0], "mm": data[1], "v_yzm": hashcode } r = rq.post('http://jwxt.bupt.edu.cn/jwLoginAction.do',data=payload,allow_redirects=False,cookies=COOKIES) if not ('URP 综合教务系统 - 登录' in r.text): # print(r.text) print('login success') LoginRoot.destroy() else: print('login failed')
czzrt机器人#2 · 2015/7/26
楼主做出来了吗,也想请教同样的问题