浅谈方正教务模拟登录实现

浅淡方正教务系统模拟登陆

        很多论坛上发布着模拟登陆方正教务系统的文章,随着方正系统的逐步升级,此前代码都已无法实现,笔者摸索登录教务系统,现将模拟登陆中发现的问题一一罗列。模拟登陆通常使用CURL进行模拟登陆操作。以下针对西安工程大学教务系统为例:

首先登录教务系统,网址:http://202.200.206.54/(xcvzkfmkuq2rsufvo51hqmmj)/Default2.aspx

我们很容易发现在Default2.aspx前有一段随机码(xcvzkfmkuq2rsufvo51hqmmj),此段随机码为后续模拟抓取成绩很有必要。我们通过抓包发现

 

有以下POST值:

__VIEWSTATE=dDwtMTAzMzQxODQxNTs7Pk6e4%2FuBwXYRApNU4idr2h4qa%2FUF&txtUserName=********&TextBox2=********&txtSecretCode=w72u&RadioButtonList1=%D1%A7%C9%FA&Button1=&lbLanguage=&hidPdrs=&hidsc=

__VIEWSTATE=隐藏字符串,可以通过正则表达式抓取;

txtUserName学号;

TextBox2密码;

txtSecretCode验证码;

RadioButtonList1选择学生;

剩下几个值为空;

利用面向对象思想写的登录块:

Public function login($num,$pw,$check)
{
$login_url='http://202.200.206.54/(xcvzkfmkuq2rsufvo51hqmmj)/Default2.aspx';
$post_fields='__VIEWSTATE=dDwtMTAzMzQxODQxNTs7Pk6e4%2FuBwXYRApNU4idr2h4qa%2FUF&txtUserName='.$this->num.'&TextBox2='.$this->pw.'&txtSecretCode='.$this->check.'&RadioButtonList1=%D1%A7%C9%FA&Button1=&lbLanguage=&hidPdrs=&hidsc=';
$ch = curl_init($login_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//0显示,1不显示。也可echo
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie_file);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, false);
curl_exec($ch);
curl_close($ch);
}


此处应该能够登录成功;抓取成绩的时候,要保证网址中含有(xcvzkfmkuq2rsufvo51hqmmj),否则抓取其他页面将无法抓取;在获取成绩时,post值中viewstates的个别字符已经在提交时被替换,笔者对比相应代码后发现以下替换规则,+替换成%2B/替换成%2f

$this->viewstates=str_replace("+","%2B",$this->viewstates);
$this->viewstates=str_replace("/","%2f",$this->viewstates);


如果不经替换页面会显示“系统正忙”。

以上就是笔者在模拟登陆教务系统抓取成绩遇到的几点问题和解决措施。

欢迎访问笔者的网站:www.goyc.cn  www.i-xp.cn

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BugGuys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值