文档章节

使用 jsoup 模拟登录 urp 教务系统

大灰狼时间
 大灰狼时间
发布于 06/24 22:48
字数 556
阅读 15
收藏 0
点赞 0
评论 0

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj

1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cookie 去提交登录请求,否则会提示:请登录 或者 出现错误。

2、输入账号密码后点击登录,可以看到请求提交过程以及 FormData 发送的数据:

这个 loginAction.do 就是要提交验证的地址

3、下面写代码:

public class Test {
	
    //下面的 Url 请求就是通过浏览器调试中 Network 一栏获取到的,需要多多调试

	//基本 Url
	private static String baseUrl = "http://202.206.161.174:9080/";
	//分数查询 Url
	private static String scoreUrl = baseUrl + "gradeLnAllAction.do?type=ln&oper=fainfo&fajhh=5325";
    //课表查询 Url
	private static String courseUrl = baseUrl + "xkAction.do?actionType=6";
	//学籍信息 Url
	private static String userInfoUrl = baseUrl + "xjInfoAction.do?oper=xjxx";
	//注销 Url
	private static String logoutUrl = baseUrl + "logout.do";
	//session 的键
    //Cookie 的格式:Cookie : JSESSIONID=******,那么 sessionId 就是等号后面的一串字符,提交请求携带这个参数的值即可
	private static String sessionName = "JSESSIONID";
	
	public static void main(String[] args) {
		try {
            //获取 Cookie
			Connection.Response res = Jsoup.connect(baseUrl)
					.method(Method.GET)
					.execute();
			String sessionId = res.cookie(sessionName);
			System.err.println(sessionId);
			
            //登录请求提交
			Connection.Response login = Jsoup.connect(baseUrl + "loginAction.do")
					.header("Cookie", sessionName + "=" + sessionId)  //携带刚才的 Cookie 信息
					.data("zjh", "账号", "mm", "密码")
                    //这里的 zjh 和 mm 就是登录页面 form 表单的 name
					.method(Method.POST)
					.execute();
			
            //此时 sessionId 为可用状态
			Document scoreDoc = Jsoup.connect(scoreUrl).cookie(sessionName, sessionId).get();
			System.err.println(scoreDoc);
			
			System.err.println("-------------------");
			
            //注销请求
			Document logoutDoc = Jsoup.connect(logoutUrl).cookie(sessionName, sessionId).post();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}

    4、运行部分截图:

    上图中已经返回了 html 信息,这里只截取了一部分。demo 基本完成了。

    代码不算难,但是思路要注意:起初的思路是先执行登录请求,然后获取到 Cookie 后再获取数据,但是总是出现 “用户未登录” 类似的提示,思路改正为上面的即可。

参考:https://blog.csdn.net/npf_java/article/details/49094245

初学,欢迎批评指正。

© 著作权归作者所有

大灰狼时间
粉丝 1
博文 31
码字总数 6016
作品 0
邯郸
程序员
Android 通过Volley 模拟登录教务系统 出错,出错原因:系统正忙

我想做一个Android端教务系统,通过Volley发送请求。 思路为:1.获取并存储cookie 2.保存网页的VIEWSTATE值 3.头信息中带上cookie,下载验证码 4.设置头信息post数据 预期是302重定向到首页,...

汪汪汪汪汪
2016/05/26
355
3
关于httpclient模拟登录的问题

初学httpclinet没多久 研究了官网的API然后上网找了些例子 然后常识登录自己学校的教务系统 但是老是出错: 我想问得是表单除了网页表面给的账户,密码等信息外还有其他的隐藏的吗?(之前看到...

_Holmes
2014/01/11
255
6
python模拟登录验证码的问题

我今天尝试使用python模拟登录,首先我将验证码的图片地址打开,得到新的图片,但是输入之后会弹出验证码不正确的提示,于是我打开firebug去调试,然后使用firebug去放在src上的时候,显示出...

funCar
2015/05/23
747
3
http client模拟登录教务系统的问题 求大神指点!

用http client模拟登录学校的教务系统 post数据以后状态码已经变成302了 为何再用get访问重定向的地址会跳到登陆界面 httppost.setEntity(new UrlEncodedFormEntity(nvps,Consts.UTF_8)); H...

SDProgrammer
2015/11/26
340
3
在线采集系统--wyps

wyps 是一个采用Java编写的一个在线采集系统,通过jsoup解析html网页,,只要会写jQuery语法就可以轻松采集任意网页的内容。并且使用selenium自动化测试工具解析动态网站或者需要登录的网站,...

阿里西西
2017/03/26
865
1
摩码创想/云教务

#云教务 软件名称 云教务学校管理系统源码 云教务开源管理系统 云教务开源系统 MoMA云教务管理软件 云教务开源软件 云教务教育机构管理系统源码 云教务培训机构管理系统,云教务系统源码,学...

摩码创想
2017/05/28
0
0
UFT入门教程(5)—自定义检查点及模块化

综合练习二 知识点 自定义检查点 模块化脚本(将action分为多个sub,再将函数添加到函数库,然后关联函数库) 要求 测试工具:UFT 被测网站:西科大教务处 内容:覆盖知识点,测试教务处登录...

iBazinga
2016/09/18
21
0
用 Python 实现模拟登录正方教务系统抢课

原文出处: vhyz's Blog 最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作...

vhyz's Blog
06/26
0
0
有关课程格子,超级课程表等一类课程APP,是如何连接各个学校的教务系统的呢,模拟登陆教务网站,还是各个教务提供了用户名密码接口,还是用其它的技术,,求大神指教。。

有关课程格子,超级课程表等一类课程APP,是如何连接各个学校的教务系统的呢,模拟登陆教务网站,还是各个教务提供了用户名密码接口,还是用其它的技术,,求大神指教。。

change_solider
2014/03/16
2.4K
3
用IT武装教育--云教务

项目介绍 在我们的日常教学活动中,动态要素是教师、学生及心理环境,人的要素--教师和学生是控制和制约教学系统进行的关键因素,在这个网络智能的时代拥有一款优秀的教务系统是非常值得的选...

摩码创想
2017/05/28
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java 重写排序规则,用于代码层级排序

1.dataList 是个List<Map<String,Object>> 类型的数据,所以比较的时候是冲map中获取数据,并且数据不能为空。 2.dataList 类型是由自己定义的,new Comparator<Map<String,Object>> 也是对应......

轻量级赤影
6分钟前
0
0
分布式大型互联网企业架构!

摘要: 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化。 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码...

明理萝
6分钟前
0
1
对MFC程序的一点逆向分析:定位按钮响应函数的办法

因为消息响应函数保存在AFX_MSGMAP_ENTRY数组中, 观察nMessage、nCode、nID、pfn利用IDA在rdata段中搜索即可, 在IDA中找到代码段基址0x401000,函数地址0x403140, 在WinDbg中运行!addre...

oready
7分钟前
0
0
阻抗匹配与史密斯(Smith)圆图基本原理

参考:http://bbs.eeworld.com.cn/thread-650695-1-1.html

whoisliang
12分钟前
0
0
maven配置文件分离

一、 简介 遇到很多次别人处理的项目,测试环境,本地开发和线上环境的配置不一样,每一次部署都要重新修改配置文件,提交审核代码,才能打包,非常不方便。 其实相信很多人都知道可以使用m...

trayvon
12分钟前
0
0
MacOS和Linux内核的区别

导读 有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我...

问题终结者
28分钟前
1
0
SpringBoot | 第八章:统一异常、数据校验处理

前言 在web应用中,请求处理时,出现异常是非常常见的。所以当应用出现各类异常时,进行异常的捕获或者二次处理(比如sql异常正常是不能外抛)是非常必要的,比如在开发对外api服务时,约定了响...

oKong
36分钟前
2
0
mysql高级

一、存储引擎 InnoDB MyISAM 比较 二、数据类型 整型 浮点数 字符串 时间和日期 三、索引 索引分类 索引的优点 索引优化 B-Tree 和 B+Tree 原理 四、查询性能优化 五、切分 垂直切分 水平切分...

丁典
57分钟前
1
0
rsync通过同步服务、系统日志、screen工具

rsync通过后台服务同步 在远程主机中建立一个rsync服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器。 首先在A机器上建立并且配置rsync的配...

黄昏残影
今天
5
0
Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
今天
150
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部