浅谈方正教务模拟登录实现
浅淡方正教务系统模拟登陆
很多论坛上发布着模拟登陆方正教务系统的文章,随着方正系统的逐步升级,此前代码都已无法实现,笔者摸索登录教务系统,现将模拟登陆中发现的问题一一罗列。模拟登陆通常使用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
浅谈方正教务模拟登录实现相关推荐
- 浅谈Javascript事件模拟
事件是用来描述网页中某一特定有趣时刻的,众所周知事件通常是在由用户和浏览器进行 交互时触发,其实不然,通过Javascript可以在任何时间触发特定的事件,并且这些事件与浏览器创建的事件是相同的.这就 ...
- 网络安全——浅谈——AAA认证技术——登录授权、配置命令
目录 一.AAA认证简介: AAA认证流程: 实验及配置命令: 第一步:开启AAA认证 第二步:配置线下保护(console接口不参与AAA认证) 第三步:对R1设备telnet我R2的时候提供AAA ...
- 安卓开发-模拟登陆上海理工大学-方正教务系统(HttpsURLConnection)
通过HttpsURLConnection模拟登录 今天,写一下基于方正教务系统的上海理工大学教务系统,项目放在了码云,有需要的可以直接翻到最后查看 首先还是登陆一下,看看我们在登陆的时候提交了什么 火 ...
- python输入学号查成绩_Python实践学习笔记:模拟登录教务系统实现微信查成绩
python+selenium+itchat模拟登录学校教务系统,获取个人成绩,通过微信发送. 先看看最终效果: 〇.背景 学习python一段时间,觊觎学校的教务系统很久了. 寒假开始,大部分同学陆 ...
- Java爬取frame的课程表_从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;...
原创文章与源码,如果转载请注明来源. 一.概述 整个系统用Java开发.我们现在要做的是类似于超级课程表.课程格子之类的功能:输入一个学生的教务系统账号.密码,得到Ta的课程表信息.点击进入课表查询, ...
- 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现
浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 文章目录 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现 一.什么是浅拷 ...
- linux的多任务 多进程,浅谈linux模拟多线程崩溃和多进程崩溃
结论是: 多线程下如果其中一个线程崩溃了会导致其他线程(整个进程)都崩溃: 多进程下如果其中一个进程崩溃了对其余进程没有影响: 多线程 #include #include #include #incl ...
- python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为
前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...
- python计算学分绩点的程序_模拟登录教务系统计算GPA的小程序
做了一些小游戏之后开始慢慢体会敲代码是件体力活,慢慢熬总能熬出来的.这几天又心血来潮想写个程序模拟登录教务系统计算GPA的小程序.不过之前没有一点点网络编程的经验,就趁着期中考后放假4天,一点点把坑填 ...
最新文章
- android设置为存储设备,我可以从格式化为内部存储器的Android SD卡或USB驱动器中恢复数据吗? | MOS86...
- 漏答题、偏科、多次复读,30 位互联网大佬考上啥大学了?
- VS2015占内存大吗?_手机是6GB运行内存,何为后台却显示3G内存?
- Python 自动化-pywinauto遍历展示程序的所有菜单项,菜单栏menu_select()操作方法的使用
- python一些常用函数_【python】常用的一些内置函数
- 【无线***实战】小试无线安全
- ibatis mybatis传入List参数
- Oracle与mongodb的区别
- python数组展示_python如何显示数组
- zabbix snmp自定义OID nginx监控实例(55)
- [react] React的render中可以写{if else}这样的判断吗?
- 团队任务2:冲刺前的准备
- 王道机试指南读后总结-5(迷宫深搜问题详解)
- 笔记本设置wifi热点
- 删库跑路是程序员最后的倔强?
- html旅游网站设计与实现——绿色古典旅游景区 HTML+CSS+JavaScript
- 哈啰单车JAVA面经
- 电路滤波器——(二)RC有源滤波器
- 真牛皮!wsl安装位置
- html底部添加备案号,网站底部怎么放备案号 WordPress、CMS、discuz等常见程序添加方法...