进去,用微信怎么查成绩

[陕西新闻联播]考生可通过微信号“陕西考试招生”进行成绩查询
24小时排行榜
编辑:刘一 听说计算机考试成绩出来了,怎么查询_百度知道
听说计算机考试成绩出来了,怎么查询
我有更好的答案
关注微信公众号“梦想微校”是的,然后点击菜单更多查询&计算机等级考试,已经出来了,输入身份证+姓名就可以查出来了,可以使用身份证查询
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何用微信查成绩?
最近一直在开发微信公众平台,研究了一下模拟登陆教学管理系统查课表的功能,其研究了很多教务系统,包括正方,青果,urp,强智,发现各家的教务系统其实大同小异,都是先用模拟登录进入网站后台,然后利用爬虫把数据从服务器上爬出来,最后利用正则表达式把获取的很混乱的数据给按照指定格式输出排版,这样就搞定了。
如果想绑定一次下次不用输入就可以查询了,有两种思路:
1.微信公众平台给每一个关注你的公众号的粉丝一个openid,这个id是唯一对应的,可以把账号和密码跟openid进行绑定
2.采用授权登录,微信开发者平台类似的也有一个openid,类似的可以将账号与该id进行绑定
代码实现:
最近很多人问我到底怎么模拟登陆正方系统来抓取课表和成绩的,其实如果你知道了浏览器是怎么和服务器交互数据的话,实现起来就很简单了。
当我们输入学号、密码后点击登陆,浏览器会把我们的学号、密码或者验证码,post到服务器的一个地址,服务器接受到POST请求后,首先验证验证码是否正确,然后验证学号、密码是否正确,如果其中有一个不正确的话,直接返回验证码错误或者学号不存在或者密码错误。如果匹配正确,那么服务器会生成随机串(就是SessionId)来表示登陆成功的状态,并返回给浏览器,浏览器得到这个串之后,作为cookies保存在浏览器,每次要获取登陆后里面的数据时都会提交这个串来验证是否已经登陆。好吧,大概的流程差不多就是这样了。所以我们需要做的就是来模拟浏览器的行为,获取登陆成功后的验证串,并通过它来请求成绩、课表的数据。
怎么模拟浏览器的行为?这个我在里面讲的很清楚了,请大家先把这篇博文看完。
好了,我们已经知道怎么去模拟浏览器行为了,那我们就来看看登陆的时候浏览器到底做了些什么?我们使用HTTP抓包工具Fiddler来对登陆的过程进行抓包,当然其他工具也是可以的,像httpclient或者直接使用浏览器的F12开发者工具。下面是我们对登陆抓包的结果:
首先我们看到txtUserName是我们填写的学号、TextBox2是我们填写的密码、txtSecreCode是我们填写的验证码、RadioButtonList1是我们选择的登陆身份。
那__VIEWSTATE和__VIEWSTATEGENERATOR又是啥玩意儿?
既然在这里提交了,那肯定不是凭空产生的,我们来看看登陆界面的源码:
小样,以为隐藏了我就看不到你了?
所以我们要先获取到这两个隐藏表单的值。怎么获取?使用正则表达式匹配即可。在这里我先不对正则表达式进行详细的讲解。
我们把获取这两个值的方法写到一个方法里面:
public function getView(){
$url = '';
$result = $this-&curl_request($url);
$pattern = '//is';
($pattern, $result, $matches);
$res[0] = $matches[1][0];
$pattern = '//is';
($pattern, $result, $matches);
$res[1] = $matches[1][0];
好了,我们来看看获取的结果:
好了,这两个值搞定!!!
下面所有的POST数据都准备了,只需要我们POST提交即可!
function login(){
$url = '登陆页面地址';
$post['__VIEWSTATE'] = 上面获取结果;
$post['__VIEWSTATEGENERATOR'] = 上面获取结果;
$post['txtUserName'] = 学号;
$post['TextBox2'] = 密码;
$post['txtSecretCode'] = '';
$post['lbLanguage'] = '';
$post['RadioButtonList1'] = ('utf-8', 'gb2312', '学生');
$post['Button1'] = ('utf-8', 'gb2312', '登录');
$result = $this-&curl_request($url,$post,'', 1);
($result);
我们来看看登陆结果,这次我们的主要目的就是获取登陆成功后的验证串(也就是cookies),表示我们已经登陆成功了!
然后,记得保存好这个cookies!!!!
哎,,,等一下,别忽悠大家!!!说的验证码怎么是空的???劳资研究了半年怎么获取验证码图片上面的文字,你TM啥都没填就行了?这个。。。我给大家解释一下。
首先验证码是怎么生成的?
当我们去访问登陆界面的时候,页面里会有一个获取验证码的地址,然后浏览器再去服务器请求验证码的图片,服务器收到验证码图片的请求,并在服务器生成一个随机串,然后把这个随机串生成成一张图片,再返回给浏览器,所以就看到了所谓的验证码。。。如果我们不去请求这个生成验证码图片的地址?我们手动来try一try!!!
首先我们找到这个生成验证码图片的地址,然后把这个地址加到屏蔽规则里面,这样浏览器就不会去访问这个地址了。(是不是很机智?哈哈、、、)
我们再来访问登陆界面,,,好了验证码图片不见了,,,,但是是不是真的不用填就能登陆呢?试试不就知道了吗?
再点击登陆呢?真不好意思,我们就这么登进去了。。。。哈哈。。。
为什么会这样?因为你没有去请求验证码图片,服务器也就不会给你生成验证码,所以提交的时候,你提交空的验证码,服务器后台也空的验证码,刚好吻合,我TM太机智了。。。好吧,这只是正方,如果在服务器后台加一个判断,如果验证码为空,直接返回登陆失败了!!!黑线!!!GG 了。。。
好了,扯了这么多我们来看看用代码能不能访问到后台的主页?
$url = '后台主页地址/xs_main.aspx?xh='.$this-&studentId;
$result = $this-&curl_request($url,'',$this-&cookie); //我们保存的cookies
($result);
登陆进来了!!!这下什么成绩、课表、什么的都不是问题了。。。
先来看看课表~~
我们直接GET获取课表的URL就行了。。。。
$url = "后台主页地址/xskbcx.aspx?xh=".$this-&studentId;
$result = $this-&curl_request($url,'',$this-&cookie);
($result);
至于成绩,我们还得POST几个其他数据,抓包先!!!我们点历年成绩。
上面两个字段和登陆一样,不解释。。。
$url = "后台主页地址/xscjcx.aspx?xh=".$this-&studentId;
$post['ddl_kcxz'] = '';
$post['btn_zcj'] = ('utf-8', 'gb2312', '历年成绩');
$post['__VIEWSTATE'] = 抓取结果;
$post['__VIEWSTATEGENERATOR'] = 抓取结果;
$result = $this-&curl_request($url,$post,$this-&cookie);
$result = ('gbk', 'utf-8', $result);
($result);
抓取结果如下:
完了。。。。。暴露本学渣智商了。。。。。QAQ~~~
好了,成绩、课表都抓取完了。。。。至于其它的什么信息,原理都是一样的。。。其它网站也是,大家可发挥各自的聪明才智来整出好玩的东西来。。。
上几张我做好的图片吧:
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点 用户名: 
记住用户名 
            
总社党组书记、理事会主任王侠主持会议并就供销合作社贯彻落实会议精神作出部署
全国深化供销社综合改革现场交流会召开

我要回帖

更多关于 微信产品代理 的文章

 

随机推荐