码迷,mamicode.com
首页 > Web开发 > 详细

继续Jsoup 正方教务系统的教学质量评价一键好评

时间:2014-05-26 15:22:46      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:style   c   class   blog   java   tar   

又到了每次给众多学科的老师评价了,但是每位老师评价的内容项有20多个,还得一个一个手动选择,所以懒人方法就此想做一个一键好评的功能了.

续上次用jsoup HttpClient等可以正常登陆教务系统,那么就可以继续下面的了

首先还是得抓包分析

bubuko.com,布布扣看到有几门科目需要评价的,可以提前分析出来,保存起来,

 

一.直接web网页分析...

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-05b31067-0311-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘JAVA语言‘);">JAVA语言</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-12130121-9392-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘电子设计实训‘);">电子设计实训</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-20112008-2013-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘可编程控制器‘);">可编程控制器</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-05b34230-0317-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘控制电机‘);">控制电机</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-xxd07206-4612-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘商务日语会话(初级)‘);">商务日语会话(初级)</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-05b31080-0775-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘数字通信原理‘);">数字通信原理</a>

<a href="xsjxpj.aspx?xkkh=(2013-2014-2)-05b31100-0936-1&xh=2011125127&gnmkdm=N12141" target="zhuti" onclick="GetMc(‘数字信号处理‘);">数字信号处理</a>

 

1 现在要做的是点击第一个进入评价页面

以后的参数都跟这个地址有关 xkkh=(2013-2014-2)-05b31067-0311-1

bubuko.com,布布扣

全部选中后保存,  进入下一个评价

2 继续评价,注意哪些参数有变化的

bubuko.com,布布扣这是第一次提交时的参数

 

到这里就可以看到相比之下这里多了个post表单的数据了,也就是第一次保存的数据了

 bubuko.com,布布扣从第一个页面传递过来的参数有很多,服务器把上一次我们的操作记录了下来,加密那一段就是了,然后作为这次提交的参数之一,再次提交

3.保存上面后打开又下一个评价页面

看图bubuko.com,布布扣第一个评价页面的post数据情况

bubuko.com,布布扣和前面基本一样,只有那个加密的那段__VIEWSTATE不同,证明它是很重要的,每次保存提交都用到的

下面还是一样的分析,....(在这之前的所有提交按钮点击都是没有响应的)

4.到了最后一个页面了

因为我先全部填完后点击了保存,所以下面的那个参数改变了,但是我们可以在全部填完后直接点击提交了,和先保存完毕在提交效果是一样的,只是表明了入口不一样而已.

bubuko.com,布布扣

点击提交看到bubuko.com,布布扣

那个Button1变成了Button2了,当然还有前面那段加密的

按理来说最重要的应该就是这一步所提交的各个参数了,所以有必要看一下那个加密的是什么内容,一般用的应该是base64加密吧

bubuko.com,布布扣

果真如此,看到解密后的内容了.那么我们不就是可以伪造一段和这个类似的就好了,然后加密post过去就解决了吧?

看来看去还是看不懂那些...还是老老实实的每次获取过来再保存在提交保险一点..

下面模拟数据提交

1.打开第一个评价页面的模拟

模拟用的参数get  

  1. xkkh:(2013-2014-2)-05b31067-0311-1
  2. xh:2011125142
  3. gnmkdm:N12141

 post参数

  1. _EVENTTARGET:
  2. __EVENTARGUMENT: 
3. __VIEWSTATE: xxxooo一大堆的
pjkc:(2013-2014-2)-xxd07206-4612-1
5. DataGrid1:_ctl2:JS1:5(优秀)

DataGrid1:_ctl3:JS1:

DataGrid1:_ctl4:JS1:

8DataGrid1:_ctl5:JS1:

DataGrid1:_ctl6:JS1:

DataGrid1:_ctl7:JS1:

DataGrid1:_ctl8:JS1:

DataGrid1:_ctl9:JS1:

DataGrid1:_ctl10:JS1:

DataGrid1:_ctl11:JS1:

DataGrid1:_ctl12:JS1:

DataGrid1:_ctl13:JS1:

DataGrid1:_ctl14:JS1:

DataGrid1:_ctl15:JS1:

DataGrid1:_ctl16:JS1:

DataGrid1:_ctl17:JS1:

DataGrid1:_ctl18:JS1:

DataGrid1:_ctl19:JS1:

DataGrid1:_ctl20:JS1:

DataGrid1:_ctl21:JS1:

DataGrid1:_ctl22:JS1:

pjxx:

txt1:

TextBox1:0

Button1:

 

post过去后再取出__VIEWSTATES作为参数

因为每个科目对应不同的编号,也就是一些参数不同,到最后提交就好了.

 

 

 

根据分析后可以得到这些信息;

假设我们有6门科目,分别命名为a,b,c,d,e,f 对应某位教师的编号1,2,3,4,5,6
网页上的工作过程:
1.点击某个科目评价链接,进入评价页面
2.打钩选中为好评
3.保存(不到最后一个不能提交)
4.点击保存按钮后调到下一个科目评价,直到最后一个,此时可以提交了
5.提交完毕,全部评价完成了.


get 参数
xkkh:(2013-2014-2)-05b31067-0311-1
xh:2011125127
gnmkdm:N12141


post 表单参数
_EVENTTARGET:
__EVENTARGUMENT:

//这个是不同生成的,根据前面的参数变化的???加密的数据,需要保存到下一个作为参数
__VIEWSTATE:

对应某位教师的编号,根据不同科目而不同
pjkc:(2013-2014-2)-05b31100-0936-1

5分好评参数
DataGrid1:_ctl2:JS1:5(优秀)
...总共20个好评
DataGrid1:_ctl21:JS1:5(优秀)

pjxx:
txt1:
TextBox1:0

前面的都需要先保存,到最后才是一次性提交
Button1:保 存
Button2:提 交


需要上面的保存post 5次,每次post需要保存返回的__VIEWSTATE作为下一次的post参数
第6次post是提交的post,这样就能做到一键好评了

继续Jsoup 正方教务系统的教学质量评价一键好评,布布扣,bubuko.com

继续Jsoup 正方教务系统的教学质量评价一键好评

标签:style   c   class   blog   java   tar   

原文地址:http://www.cnblogs.com/act262/p/3746308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!