延边大学教务信息查询源代码 php实现
未分类 by admin
前段时间一时兴起,所以就做了个这莫个东西,现将将核心代码公开如下:
法律法规:
非学校官方人员使用此代码可能构成非法获取公民个人信息罪,目前延边大学周边也有不少商家可以查成绩差课表神魔的,但据学校老师说,他们那个都不合法,学校并没有同意,所以同学们慎用,以免造成个人信息泄露。。。比如说火车票的折扣折扣的次数被用完之类的问题,都是这个原因,就是因为有人用你的假身份证、学生证买票了。。
刑法第二百五十三条 非法获取公民个人信息罪是指以窃取或者其他方法非法获取国家机关或者金融、电信、交通、教育、医疗等单位在履行职责或者提供服务过程中获得的公民个人信息,出售或者非法提供给他人,情节严重的行为。根据刑法规定,犯本罪的,处三年以下有期徒刑或者拘役,并处或者单处罚金。
注:代码仅供学习使用,请勿用于商业用途,在此申明,商用以后造成的一切后果均与本网站无关,延边大学处于国家边疆地区,且为211国家重点,盗取数据可能会形成重罪,为了保障祖国的长治久安,所以想干坏事的同学请珍重,且行且珍惜。还有,建议同学们回家以后查看期末成绩课表用学校提供的vpn,以下为学校官方的vpn使用方法以及下载地址:
http://jiaowu.ybu.edu.cn/index.php?id=114
简单做了一个示例,获取方式如下,打开终端:
git clone https://github.com/Pengfei-Gao/YBUInformation.git
最后,恭敬的献上源代码:
<?php /** * Created by PhpStorm. * User: 鹏飞 * Date: 2015/5/5 * Time: 16:31 */ class CYbuInformation { public $vars;//-----登录要提交的表单数据--------------- public $ch;//资源句柄 public $params; public $cookie_path = './';//cookie存储路径 public $postfields; function __construct($userName,$userPass,$header=false) {//$userName为学生学号,$userPass为用户综合信息门户登录密码 $url='http://info.ybu.edu.cn/loginAction.do'; $this->vars['userName'] = $userName; $this->vars['userPass'] = $userPass; $this->ch = curl_init(); $this->params[CURLOPT_URL] = $url; //请求url地址 $this->params[CURLOPT_HEADER] = $header; //是否返回响应头信息 $this->params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回 $this->params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $this->params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0'; $this->params[CURLOPT_SSL_VERIFYPEER] = false; $this->params[CURLOPT_SSL_VERIFYHOST] = false; $this->postfields = ''; foreach ($this->vars as $key => $value){ $this->postfields .= urlencode($key) . '=' . urlencode($value) . '&'; } $this->params[CURLOPT_POST] = true; $this->params[CURLOPT_POSTFIELDS] = $this->postfields; //判断是否有cookie,有的话直接使用 if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar']))) { $this->params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie } else { $cookie_jar = tempnam($this->cookie_path, 'cookie'); //产生一个cookie文件 $this->params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息 setcookie('cookie_jar', $cookie_jar); //保存cookie路径 } curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); //执行登录,此时的$content值为综合信息门户重定向的那段代码 $this->params[CURLOPT_URL] = "http://info.ybu.edu.cn/index_jg.jsp"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); //模拟重定向,$content即综合信息门户登录后的界面源码 } //析构函数,释放资源 function __destruct(){ // ... curl_close($this->ch); @ unlink($this->cookie_path.$_COOKIE['cookie_jar']); } // 获取http响应头的location部分 public function getHeaderLocation($url){ $this->params[CURLOPT_URL]=$url; $this->params[CURLOPT_HEADER]=true; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch);//此时的$content为响应头信息,当然,也包括部分抓取到的页面信息 $headArr = explode("\r\n", $content); $edengUrl=""; foreach ($headArr as $loop) { if (strpos($loop, "Location") !== false) { $edengUrl = trim(substr($loop, 10)); } } $this->params[CURLOPT_HEADER]=false; return $edengUrl; } //=================================================================================================================== //URP教务系统(即新教务选课系统) //=================================================================================================================== public function setURPCookie(){//设置URP教务系统cookie,模拟用户登录 $edengUrl=$this->getHeaderLocation("http://info.ybu.edu.cn/roamingAction.do?appId=NEWJW"); $this->params[CURLOPT_URL]=$edengUrl; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch);//模拟用户操作 } public function getStudentFinalGrade(){//返回学生期末考试成绩,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/cjSearchAction.do?oper=getKscjList"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch);//此时的$content为期末考试成绩 return $content; } public function getStudentSchedule(){//返回学生课表信息,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/xkAction.do?actionType=6"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch);//此时的$content值为本学期课表 return $content; } public function getStudentAllPassCourse(){//返回学生全部及格课程,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/gradeLnAllAction.do?type=ln&oper=sxinfo&lnsxdm=001"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentCoursePropertyGrade(){//返回学生课程属性成绩,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/gradeLnAllAction.do?type=ln&oper=sxinfo&lnsxdm=001"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentCourseProgramGrade(){//返回学生课程方案成绩,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/gradeLnAllAction.do?type=ln&oper=fainfo&fajhh=339"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentAllFailPassCourse(){//返回学生全部不及格课程,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/gradeLnAllAction.do?type=ln&oper=bjg"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentThisSemesterGrade(){//返回学生本学期成绩,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/bxqcjcxAction.do"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); } private function getStudentSchoolInformation(){//返回学生学籍信息,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/xjInfoAction.do?oper=xjxx"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentCalendarYearCourse(){//获取学生历年课表,在短学期即将开始时,学校会将本学期课表放置在历年课表,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/lnkbcxAction.do"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); } private function getStudentInformationUnusualChange(){//返回学生学籍异动信息,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/xjInfoAction.do?oper=ydxx"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getStudentChooseCourseResult(){//返回学生选课结果,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/xkAction.do?actionType=6"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function getExamArrangment(){//返回该学生的考试安排信息,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/ksApCxAction.do?oper=getKsapXx"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function ExamRegistration(){//考试报名,该函数有待完善,只能返回报名信息,无法实现报名,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/kwBmAction.do?oper=getKsList"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); return $content; } public function ChooseCourseManagement(){//选课管理,该函数有待完善,只能返回报名信息,无法实现报名,注意,使用该函数前必须至少调用$this->setURPCookie()函数一次,否则会返回错误信息 $this->params[CURLOPT_URL]="http://219.217.20.36/xkAction.do"; curl_setopt_array($this->ch, $this->params); //传入curl参数 $content = curl_exec($this->ch); } // }
29
2015-05