perl登录whu选课系统,查看信息等

tkorays(tkorays@hotmail.com)

永不停止地奋斗!

曾想过用命令行来操作选课系统,这看起来多么好玩的一件事啊。

要实现它,首先要做的就是选课系统的登录,然后是解析页面,获取信息。这些用perl实现是多么简单!

下面实现了一个简单登录与课表查询,其他功能如查询信息,选课等,道理都是一样的。不是post就是get然后解析。

#!/usr/bin/perl# Copyright 2014 tkorays. All rights reserved.
# author tkorays
# email tkorays@hotmail.comuse strict;
use warnings;
use LWP;
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use URI::Escape;
use URI::URL;my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
$ua->timeout(100);
my $cookie_jar = HTTP::Cookies->new(file=>'lwp_cookies.txt',autosave=>1,ignore_discard=>1);
$ua->cookie_jar($cookie_jar);my $whu_id = '你的whu学号';
my $whu_pwd = '你的密码';
my $captcha = '';
my $url = 'http://202.114.74.198';
my $form_submit = encode('gb2312',decode('utf8',"确 定"));
my $captcha_url = $url.'/GenImg';
my $pres = $ua->get($captcha_url);
open(FILE_HANDLE,'>img.jpg');
binmode FILE_HANDLE;
print FILE_HANDLE $pres->content;
close FILE_HANDLE;###################################
# input info
print 'input your id:',"\n";
#chomp($whu_id = <STDIN>);
die "\n***please input your id***\n" unless $whu_id;
print 'input your password:',"\n";
#chomp($whu_pwd =  <STDIN>);
die "\n***please input your password***\n" unless $whu_pwd;
print 'input captcha:',"\n";
chomp($captcha = <STDIN>);
die "\n***please input captcha***\n" unless $captcha;my $res = $ua->post($url.'/servlet/Login',{'who'=>'student','id'=>$whu_id,'pwd'=>$whu_pwd,'yzm'=>$captcha,'submit'=>$form_submit
});
if($res->header('Location') eq $url.'/stu/newstu_index.jsp'){print "login success!\n";
}else{exit;
}# get lessonsmy $lessonpage = $ua->get($url.'/stu/query_stu_lesson.jsp');
die 'failed to open lesson page' unless $lessonpage->is_success;
my $pagect = $lessonpage->content;
$pagect =~ s/[\r\n\t]/ /g;
my $result;
my $t = encode('gb2312',decode('utf8',"姓名"));
$pagect =~ /$t:(.*?) /;
print "\n\n",encode('gb2312',decode('utf8',"姓名")),": $1\n";
$t = encode('gb2312',decode('utf8',"学号"));
$pagect =~ /$t:(.*?)\s/;
print encode('gb2312',decode('utf8',"学号")),": $1\n";print encode('gb2312',decode('utf8',"课程")),": \n";
my @allmatch = $pagect =~ /<tr[^>]*>(.*?)(?!\/tr>)<\/tr>/g;
foreach my $single(@allmatch){$result = $single =~ /<td width="80">(.*?)(?!\/td>)<\/td>/g;print $1,"\n" if $result;
}

填写好密码,找到验证码文件填写好后,运行结果如下:

之后你就可以为所欲为,编写自己的选课系统功能,自由选课,一键评教,抢课,so easy……

perl登录whu选课系统,查看信息等相关推荐

  1. springboot基于微信小程序的选课系统毕业设计源码060000

    目  录 摘要 1 绪论 1.1研究背景 1.2开发意义 1.3系统开发技术的特色 1.4论文结构与章节安排 2选课系统小程序系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 ...

  2. C#毕业设计——基于C#+asp.net+SQL Server的动态口令认证网上选课系统设计与实现(毕业论文+程序源码)——网上选课系统

    基于C#+asp.net+SQL Server的动态口令认证网上选课系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+SQL Server的动态口令认证网上选课系统 ...

  3. springboot基于微信小程序的选课系统060000

    目  录 摘要 1 绪论 1.1研究背景 1.2开发意义 1.3系统开发技术的特色 1.4论文结构与章节安排 2选课系统小程序系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 ...

  4. springboot基于微信小程序的选课系统 毕业设计-附源码060000

    目 录 摘要 1 1 绪论 1 1.1研究背景 1 1.2开发意义 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2选课系统小程序系统分析 3 2.1 可行性分析 3 2.2 系统流 ...

  5. (附源码)springboot基于微信小程序的选课系统 毕业设计060000

    目 录 摘要 1 1 绪论 1 1.1研究背景 1 1.2开发意义 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2选课系统小程序系统分析 3 2.1 可行性分析 3 2.2 系统流 ...

  6. 基于SSM的公选课的选课系统/选课系统的设计与实现

    摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:公选课的选课系统当然也不能排除在外,随着网络技术的不断成熟,带动了公选课的选课系统的发展,它彻底改变了 ...

  7. 教学一体化服务平台——学生选课系统需求分析

    1 需求分析 1.1 系统简介 1.2 需求说明 1.3 用例分析 1.3.1 用例与角色 1.3.2 用例图 1.3.3 用例描述 1 需求分析 1.1 系统简介    "选课" ...

  8. 基于微信小程序的学生选课系统源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 小程序 代码注释齐全,没有多余代码,适合学习( ...

  9. 查看linux系统账号信息,Linux系统查看账户及登录信息的11个方法

    欢迎,来自IP地址为:110.247.163.57 的朋友 这里将向您展示11种在Linux系统中查找用户信息的有用方法.我们将描述如何获取用户帐户详细信息.显示登录详细信息以及用户在系统上所做的操作 ...

最新文章

  1. servlet设置session追踪模式
  2. 外企面试官最爱提的10个问题
  3. [2019.3.4]BZOJ1213 [HNOI2004]高精度开根
  4. MemCache详细解读(转)
  5. golang中apend_golang的append()为什么不会影响slice的地址?
  6. 从零实现深度学习框架【实现自己的PyTorch】
  7. python列表排序sort_python列表排序方法reverse、sort、sorted
  8. 嵌入式常见 c语言笔试题
  9. python股票量化交易从入门到实践df_python股票量化交易从入门到实践df_Python股票量化交易从入门到实践/金融科技系列......
  10. 腾讯微博android版本,腾讯微博
  11. 网络工程师考试经验总结
  12. xmake中add_files的使用
  13. Django strftime 时区问题
  14. Google Chrome Windows平台稳定版离线安装包下载
  15. 安装Luma QQ (LINUX)
  16. 七麦数据analysis参数算法还原
  17. 秩和比RSR法算法C语言,一文掌握秩和比综合评价法
  18. 禁止输入空格键demo效果示例(整理)
  19. Python筛选处理Excel的两种方法(openpyxl与pandas)
  20. Intel x86_64使用cpuid指令获取CPU信息

热门文章

  1. 关于使用UIPanGestureRecognizer手势touchesBegan不调用的问题
  2. 5G缩略语 (TS38.101/104/211/212/213/214/300)
  3. httprunner学习手册
  4. Typora 编辑器 怎么 制作大纲 以及 大纲级别
  5. C语言 socket编程实例
  6. 安全联盟2016年度网络诈骗数据报告
  7. 西数硬盘linux,SMR硬盘可靠性不再是问题 西数神油ZoneFS系统纳入Linux中
  8. 我遇到的Java面试题
  9. 高等数学:第五章 定积分(6) 广义积分
  10. 怎么转换M4R格式?试试这几款软件吧