
请求 cookie 会在进教务系统响应给浏览器
__VIEWSTATE \ __VIEWSTATEGENERATOR \ __EVENTVALIDATION这三个是隐藏在 html 表单里面的 
当 POST 数据时 
请求头里有请求 Cookie
请求主体里有__VIEWSTATE, 但是这个是由下面组合而成的
__VIEWSTATE=__VIEWSTATE+&+__VIEWSTATEGENERATOR+&+__EVENTVALIDATION+&+Account+&+PWD+&CheckCode+&+cmdok
每一个标签内包含的/标记 统统转为%2F,=统统转为%3D,+统统转为%2B
__VIEWSTATE=%2FwEPDwUKMTA0NDkyOTUxNA9kFgICAw9kFgQCDw8PFgIeBFRleHRlZGQCEQ8PFgIfAAUCMjBkZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUHQ2hrVXNlclVLjABopnY3NiJFSz0oR293GTZC &__VIEWSTATEGENERATOR=DD4FBC66 &__EVENTVALIDATION=%2FwEWBwKx8tHqBQKvo8HwCwKG85bvBgLO44u1DQLAiqigBwLM6LcMApnA7cMNf4XQgPVkJVQsZf3FTrkhLdziQ4k%3D &Account=***** &PWD=****** &CheckCode=je9p &cmdok= post 数据以后会得到一个响应的 Cookie

那么就有了一个完整的 Cookie
Cookie: ASP.NET_SessiOnId=k0rk4pyovyhc1l454tejrrrv; .ASPXAUTH=9FD433C6CC5CFE062C636A99A7DAD8CBDD8E0BCC5AF8F632F48F7879D46B40DE3E81C216943FDDEA7C57454B80C8BE24E7AFBB41253A81C6FFA1A799C5F441204216B1D884426C3CF9A5B2774E422F2633EABC5A5BB212C7DD4E887CBD301DEE4A60917E17121E54DAB4023421D4FEE762BA661C 通过这个完整的 Cookie 就可以查询课表,查询成绩等

这里本来应该显示表单数据,变成了请求负载,
1 Feiox 2016-05-11 15:53:45 +08:00 正方教务系统 :P |
3 jimzhong 2016-05-11 16:01:07 +08:00 以前做过正方的模拟登录,没有遇到楼主的问题。 模拟登录失败可能是由于服务端会检查 UA ? 楼主可以试试用 requests 的 session 。不用操心 cookie 。 |
4 lxy 2016-05-11 16:03:53 +08:00 网址……写对了吗? |
7 d2D5Cc 2016-05-11 16:28:31 +08:00 教务系统想要纯用 post 拿到数据很难,到后面会有各种坑,比如不同系统之间跳转(认证系统和教务系统不是一个公司做的),还有课程信息几乎全部是 js 请求得到的,而简单的 post 并不能获取到 js 运行后的 html,建议使用 selenium 这种自动化来实现功能,简单方便 |
8 hxndg 2016-05-11 16:32:25 +08:00 额。。。我在些登录我们学校的教务的时候,直接用的 request 的 session ,木有遇到问题,建议还是直接用 request 把。 http://docs.python-requests.org/en/master/ |
9 hxndg 2016-05-11 16:33:32 +08:00 但是,如果要真是想抓取到各种信息的话,就好像北邮人论坛的那种必须得看 js 的解析了,这个就很尴尬了。 |
13 liangmishi 2016-05-11 17:31:12 +08:00 via Android http://www.tor1024.com/spider/4218ZDsqRItW57236333 前几天写过一个正方教务系统 |
14 extreme 2016-05-11 17:54:08 +08:00 正方内页会检查 Refer 头,带上 Refer 头,具体内容你 F12 看 POST 时的。 |
15 wuhuaji 2016-05-11 18:46:11 +08:00 我也写过 Python 版的模拟登陆,楼主可以参考下: https://github.com/WuHuaJi0/jwc/blob/master/auth.py |
16 Syc 2016-05-11 18:49:23 +08:00 via Android 检查 UA 来路 特定 http 头 等 (还有比如 115 有特定的浏览器 js 钩子) |
17 cdmaok 2016-05-11 19:30:35 +08:00 selenium 走起。 |
18 imNull 2016-05-11 19:53:52 +08:00 via Android 我们学校也是强智教务系统,但版本可能不一样,我们学校的没你说的那么复杂。 不知道有木有参考价值 https://github.com/xu42/DLPU-Student-API |
19 loveyu 2016-05-11 23:43:12 +08:00 之前用 C#做过正方的模拟,每次请求都把信息带全就好了,那个什么表单中的__VIEWSTATE 也得带,不然就报错。 |
20 ysdj 2016-05-12 00:54:12 +08:00 你没请求验证码吧? |
22 sholmesian 2016-05-12 07:15:34 +08:00 via iPhone 教务系统的话还有一个坑是如果某个参数(包括但不限于用户名)含有中文时,编码统一的问题。 |
23 yjd 2016-05-12 10:29:35 +08:00 做 post 很多时候要注意引用页有没有带上。 |
24 yangyanggnu 2016-05-12 13:37:21 +08:00 你 POST 到 http://newjwglxt.jiea.cn/jiaowu_system/login.aspx 试试。 另外,我用你给的 cookie 进去看了下,有如下链接: 学院主站 OA 系统 新教务系统 老教务系统 科研成果申报 一卡通查询 资产管理系统 但都是内网地址,暂时看不什么东西。 |
25 ayaseangle 2016-05-13 12:04:04 +08:00 .net webform 做的系统。。。 |
26 lightory 2016-05-21 17:36:43 +08:00 @sholmesian 咦,在这里看到你了 :) |
27 sholmesian 2016-05-21 20:03:49 +08:00 via iPhone @lightory 哈哈 好久不见 |