(微信开发)PHP curl模拟登陆教务系统查询成绩查询课表实现微信查成绩差课表功能

             最近微信开发特别火,刚学会helloword的我也去玩了一下。做了一个微信端查成绩、查课表、查考试安排,图书借阅情况,一键续借的微信公众账号。做了几天,从只会echo到这个公众账号完成,遇到了不少问题,也学到了不少东西。现在写出来算是总结吧。也给需要的同学一个参考的例子。下面以中南民族大学教务系统为例。

      一.原理

        模拟登陆的原理是这样的,当我们登陆教务系统的时候,我们把学号和密码填好,一点提交,浏览器就把我们我们填好的表单以post的方式提交给教务系统的处理登陆的页面。模拟登陆要做的就是模拟浏览器的行为,把我们的学号和密码用post提交给教务系统的登陆页面处理,然后保存cookie,到时候带着cookie去访问成绩和其他任何界面就可以了。原理就是这么简单。如果你对curl还不太熟悉的话。去这里学习一下再过来看教程→curl

      二 .抓包

         我们来抓包看看浏览器是怎么把把我们的信息提交给教务系统的。如果你还不会抓包的话,不用紧,认真往下看,看完就会了。抓包工具有很多,用浏览器自带的也可以。我比较喜欢用httpwatch.看个人喜好。本来还想一边抓包一边写的,无奈我们学校的教务系统维护了,下面我们以武汉理工大学的教务系统为例。

用的是同学的号,所以不号把人家学号曝光O(∩_∩)O哈哈~。学号密码填好了,点击提交,看看浏览器发生了什么。

我们找到提交的地址和需要提交的数据,好,我们先把他们复制下来:表单提交地址:http://sso.jwc.whut.edu.cn/Certification/login.do

需要post的数据段:

password:你的密码 systemId type :xs userName:你的学号 xmlmsg:

为空的就是不用填。OK.下面开始写代码。。。。。

   三.模拟登陆

   代码如下:

我们试着运行一下程序O(∩_∩)O哈哈~

看看结果如何:

为什么这样咧???

为什么不是我们想要的结果咧?

为什么不是登陆成功!!!

难道是模拟的不够像???

好吧!!!那我再模拟得像一点╮(╯▽╰)╭我要伪装成浏览器。加如下两行代码试试:

再运行一次看看结果如何O(∩_∩)O哈!:

oh,success!!!这就模拟登陆成功了。下面带着cookie想去哪个页面就去哪个页面。好了,模拟登陆到这里就结束了,就是这么简单.后面的数据处理自己动一下手O(∩_∩)O哈哈~,不懂的加我扣扣648988391.或者加扣扣交流群:429207338

源码:



你可能感兴趣的:(PHP模拟登陆实战)