噜噜噜,附上代码~~~

不过说句老实话,ACM是真的比写这个有意思多了,吸吸吸~~

package jwgl;

import java.io.IOException;

import website.login;

public class Main {

public static void main(String[] args){

try {

login.login_jwgl();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

package website;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

//import org.apache.http.HttpHost;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.config.RequestConfig;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClientBuilder;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.impl.client.LaxRedirectStrategy;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import constval.pageval;

public class login {

//static HttpHost proxy = new HttpHost("127.0.0.1",8080);

static RequestConfig requestConfig = RequestConfig.custom()

//.setProxy(proxy)

.setConnectTimeout(10000) // 设置连接超时时间

.setConnectionRequestTimeout(100000) // 设置请求超时时间

.setSocketTimeout(100000).setRedirectsEnabled(true)// 默认允许自动重定向

.build();

public static void login_jwgl() throws ClientProtocolException, IOException {

HttpClientBuilder builder = HttpClients.custom().disableAutomaticRetries() // 关闭自动处理重定向

.setRedirectStrategy(new LaxRedirectStrategy());// 利用LaxRedirectStrategy处理POST重定向问题

CloseableHttpClient httpClient = builder.setDefaultRequestConfig(requestConfig).build();

String state=pageval.get_page();

HttpPost httpPost = new HttpPost(pageval.login_page+state+"/default2.aspx");

System.err.println("RemoteHost :"+pageval.login_page+state+"/default2.aspx");

Scanner scanner=new Scanner(System.in);

System.out.println("请输入学号 :");

String Sno=scanner.nextLine();

System.out.println("请输入密码 :");

String password=scanner.nextLine();

Listlist = new ArrayList();

list.add(new BasicNameValuePair("__VIEWSTATE", "dDwtMTg3MTM5OTI5MTs7PqzAMxEcbTO1Y3iF3fZH/MWfvpUe"));

list.add(new BasicNameValuePair("TextBox1", Sno));

list.add(new BasicNameValuePair("TextBox2", password));

list.add(new BasicNameValuePair("RadioButtonList1", "%D1%A7%C9%FA"));

list.add(new BasicNameValuePair("Button1", ""));

list.add(new BasicNameValuePair("lbLanguage", ""));

try{

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,"gb2312");

httpPost.setEntity(entity);

HttpResponse httpResponse=httpClient.execute(httpPost);

if(httpResponse.getStatusLine().getStatusCode()==200){

String webCode= EntityUtils.toString(httpResponse.getEntity());

String Sname=pageval.get_Sname(webCode, Sno);

String stoken=pageval.get_stoken(webCode);

System.out.println("Welcome "+Sname+" ~~~");

pageval.printClasses(httpClient,state,Sno,Sname,stoken);

System.err.println("----------------------------------------------------->");

pageval.printStudySchedule(httpClient, state, Sno, Sname, stoken);

httpPost.abort();

}

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

if(httpClient!=null){

try {

httpClient.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

scanner.close();

}

}

}

package constval;

import java.util.List;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import org.apache.http.Header;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.config.RequestConfig;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import util.DP;

public class pageval {

private static RequestConfig requestConfig=RequestConfig.custom()

.setRedirectsEnabled(false)

.build();

public static String login_page="http://202.197.120.57";

public static String get_page() throws ClientProtocolException, IOException {

HttpClient httpClient=HttpClients.createDefault();

HttpGet httpGet=new HttpGet(login_page);

httpGet.setConfig(requestConfig);

HttpResponse httpResponse=httpClient.execute(httpGet);

String host="";

if(httpResponse.getStatusLine().getStatusCode()==302){

Header[] header=httpResponse.getAllHeaders();

for(int i=0;i"+Sno;

String to="同学";

int idx1=webCode.indexOf(from)+30;

int idx2=webCode.indexOf(to);

return webCode.substring(idx1,idx2);

}

public static String get_stoken(String webCode){

String from="&gnmkdm=";

int idx=webCode.indexOf(from);

return webCode.substring(idx+8,idx+15);

}

public static String get_viewstate1(String webCode){

int idx1=webCode.indexOf("value=\"")+7;

int idx2=webCode.indexOf("

")-11;

return webCode.substring(idx1, idx2);

}

public static String get_viewstate2(String webCode){

int idx1=webCode.indexOf("__VIEWSTATE\" value=\"")+20;

int idx2=webCode.indexOf("

java获取教务系统成绩,Java httpClient 正方教务管理系统模拟登陆,爬取学生成绩和培养计划...相关推荐

  1. python多次登录教务系统_python3模拟登录正方教务系统

    刚学了大概两周的python ,顺便搞了下爬虫.试着用python模拟登录学校的教务系统. 看了个教程,附上链接 参照教程做了一下,发现系统经过一些变动,原教程还有很多可以改进的地方 准备工作 先来看 ...

  2. 正方教务系统换数据库服务器,附:正方教务系统成绩录入操作说明- 正方教务系统成绩管理使用说明.doc...

    附:正方教务系统成绩录入操作说明- 正方教务系统成绩管理使用说明 正方教务系统成绩录入操作说明 正方教务系统成绩管理包括成绩录入.统计分析.成绩单回收确认和查询打印几项功能,其中成绩录入包括后台成绩录 ...

  3. java web 青科大_青科大正方教务管理系统

    青科大正方教务管理系统(一) 青科大正方教务管理系统(二) 青科大正方教务管理系统(三) 山东科技大学学生网上正方教务系统操作指南 一.登录系统 打开IE浏览器,输入WEB服务器地址(192.168. ...

  4. 学生教务系统(java实现版)【附全部源码】

    学生教务系统[java实现版附源码]

  5. JAVA留言板系统(java留言板系统)java留言管理系统

    JAVA留言板系统(java留言板系统)java留言管理系统 public Swingtest002() {// 设置标题setTitle("请登陆");// 绝对布局setLay ...

  6. 长沙理工大学教务管理系统模拟登陆

    长沙理工大学教务管理系统模拟登陆 准备 浏览器抓包设置 开始抓包 开始数据包分析 登陆界面包 加密算法包 验证码包 登陆包 代码实现 密码加密 验证码加密 获取新的Cookie和必要的参数 获取验证码 ...

  7. python爬取网站时,一键获取headers、url等信息(真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽)

    python爬取网站时,一键获取headers.url等信息 (真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽) 作为Python的使用者,我今天就和大家来分享分享我学习python的经验 ...

  8. 如何用C++从文件读取学生成绩再求出平均成绩送回文件中

    如何用C++从文件读取学生成绩再求出平均成绩送回文件中 楼主今天心血来潮,第一次发帖,请多多包涵. 数据库第一个实验的目的和内容如下: 一.实验目的 熟练的使用C语言或C++编写程序 二.实验内容 ( ...

  9. java模拟登陆教务系统_Java模拟登录高校教务系统

    模拟登陆部分代码: 本次使用HttpClient 4.3进行开发, 该版本与之前的代码写法风格相差较大, 大家多留意下.需导入Jar包:commons-logging-1.1.3.jar / http ...

最新文章

  1. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime
  2. 【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
  3. 转]网络上收集的Visual Studio 2008的一些小技巧
  4. 一定要好好学习C语言
  5. java入门,学习笔记
  6. phpstudy(自己电脑主机做服务器,手机网站界面打不开)
  7. vue-cli安装和使用
  8. MySql5.6版修改用户登录密码
  9. [HAOI2012]高速公路
  10. arm交叉编译jsoncpp
  11. 百度地图label样式修正
  12. CCF 201812-2小明放学
  13. 伸展树(splay tree)
  14. 员工因上厕所时间超长被开除了,法院:超出正常生理需求范围!
  15. 在CentOS 5.5安装 Apache2 和 PHP5 及 MySQL
  16. centos7 vsftpd默认端口修改
  17. 【图像去噪】基于matlab GUI小波+中值+维纳及频域滤波【含Matlab源码 506期】
  18. linux文件系统与sysfs,Linux设备模型与Sysfs文件系统.doc
  19. Java入门之窗口,精细全方位讲解,快乐学java铁铁们!
  20. GOM跟GEE登陆器列表文件加密教程

热门文章

  1. 计算机组成原理学习 笔记一
  2. 在vscode运行js 输出会合并_前端系列——JS的运行与输出
  3. 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
  4. bgb邻居关系建立模型_知识图谱上的双塔召回:阿里的IntentGC模型
  5. 移动GPU三种主流架构优缺点浅析
  6. Eigen 简明教程之如何从Python转到Eigen
  7. 我们为什么这样选择损失函数
  8. 图像处理-灰度变换函数imadjust和stretchlim
  9. 阿里云多机部署Fabric 1order节点多个peer节点
  10. IBM打造云访问量子计算机 规模仅相当于D-Wave系统的四百分之一