• 查询四六级成绩


    中间用到了jsoup解析html文档jsou的jar包可以在这里http://pan.baidu.com/s/1gd6AjnX下载。

    另外主要利用的是httpClient模拟浏览器登录,只要是查询一个地方的信息httpclient不断开,就可以自动管理cookie,带着验证查询。

    httpclient的jar包可以在这里http://pan.baidu.com/s/1pJCz7Vt下载。

      1 package cn.liuning.UI;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 import cn.liuning.find.FindCETScore;
      6 import cn.liuning.find.FindLibrary;
      7 import cn.liuning.javabean.Book;
      8 import cn.liuning.javabean.Score;
      9 
     10 
     11 public class Main {
     12     
     13     /**
     14      * @param args
     15      * @throws Exception 
     16      */
     17     public static void main(String[] args) throws Exception {
     18     
     19         //查询CET
     20         //System.out.println("请输入您的准考证号:");
     21         //Scanner scanner = new Scanner(System.in);
     22         //String examnumber = scanner.next();
     23         //System.out.println("请输入您的姓名:");
     24         //String name = scanner.next();
     25         FindCETScore findCet=new FindCETScore();
     26         List<Score> list1 = new ArrayList<Score>();
     27         list1 = findCet.findCETScore_Get("", "");
     28         findCet.output(list1);
     29         
     30         //查询图书馆借书情况
     31         FindLibrary findBook = new FindLibrary();
     32         //System.out.println("请输入您的账号:");
     33         //Scanner scanner = new Scanner(System.in);
     34         //String account = scanner.next();
     35         //System.out.println("请输入您的密码:");
     36         //String password = scanner.next();
     37         List<Book> list2=findBook.findLibrary("","");
     38         findBook.output(list2);
     39         
     40     }
     41 
     42 }
     43 --------------------------------------------------------------------------------
     44 package cn.liuning.find;
     45 
     46 import java.util.ArrayList;
     47 import java.util.List;
     48 
     49 import org.apache.http.client.methods.CloseableHttpResponse;
     50 import org.apache.http.client.methods.HttpGet;
     51 import org.apache.http.impl.client.CloseableHttpClient;
     52 import org.apache.http.impl.client.HttpClients;
     53 import org.apache.http.util.EntityUtils;
     54 
     55 import cn.liuning.Utils.CET_HtmlToJavaBean;
     56 import cn.liuning.javabean.Score;
     57 
     58 public class FindCETScore {
     59 
     60     
     61         CloseableHttpClient httpclient= HttpClients.createDefault();
     62         List<Score> list = new ArrayList<Score>();
     63         
     64         //get方式获取
     65         public  List<Score> findCETScore_Get(String examnumber,String name) throws Exception {  
     66             try {
     67                 //371012141209811 刘宁
     68                 HttpGet httpGet1 = new HttpGet("http://www.chsi.com.cn/cet/query?zkzh=371012141209811&xm=刘宁");
     69                 //设置请求头
     70                 httpGet1.setHeader("Referer", "http://www.chsi.com.cn/cet/");//这句话必须设置,有识别验证,不设置的话不知道是http://www.chsi.com.cn/cet/传过来的信息。
     71                 //执行
     72                 CloseableHttpResponse response3 = httpclient.execute(httpGet1);
     73                 try {
     74                     
     75                        String str = EntityUtils.toString(response3.getEntity(),"utf-8");
     76                        CET_HtmlToJavaBean thmlTobean = new CET_HtmlToJavaBean();
     77                        list = thmlTobean.changetoBean(str);
     78                        return list;
     79                        
     80                  } finally {
     81                      response3.close();     
     82                  }
     83             } finally {
     84                 httpclient.close();
     85             }
     86         }
     87      
     88     //post方式获取
     89      public  String findCETScore_Post(CloseableHttpClient httpclient) throws Exception {
     90         return null; 
     91      
     92      }
     93      
     94      public void output(List<Score> list){
     95              Score score=new Score();
     96             score=(Score) list.get(0);
     97             System.out.println("姓名:"+score.getName());
     98             System.out.println("学校:"+score.getSchool());
     99             System.out.println("考试类别:"+score.getCategory());
    100             System.out.println("准考证号:"+score.getExamnumber());
    101             System.out.println("考试时间:"+score.getTestTime());
    102             System.out.println("总分:"+score.getTotalScore());
    103             System.out.println("听力:"+score.getListen());
    104             System.out.println("阅读:"+score.getReading());
    105             System.out.println("写作与翻译:"+score.getTranslate());
    106          
    107      }
    108 }
    109 --------------------------------------------------------------------------------
    110 package cn.liuning.Utils;
    111 import java.util.ArrayList;
    112 import java.util.List;
    113 
    114 import org.jsoup.Jsoup;
    115 import org.jsoup.nodes.Document;
    116 import org.jsoup.nodes.Element;
    117 import org.jsoup.select.Elements;
    118 import cn.liuning.javabean.Score;
    119 
    120 public class CET_HtmlToJavaBean {
    121 
    122      public List<Score> changetoBean(String str)
    123      {
    124 
    125         Document doc = Jsoup.parse(str);
    126         Element table = doc.getElementsByTag("table").get(1);
    127         Elements trs = table.getElementsByTag("tr");
    128         ArrayList<Score> list=new ArrayList<Score>();
    129         Score score = new Score();
    130         for (int i = 0; i < trs.size(); i++) 
    131         {
    132             Element current_tr = trs.get(i);
    133             Element td=current_tr.getElementsByTag("td").get(0);
    134             String text=td.text();
    135             if(i==0){
    136                 score.setName(text);
    137             }else if(i==1){
    138                 score.setSchool(text);
    139             }else if(i==2){
    140                 score.setCategory(text);
    141             }else if(i==3){
    142                 score.setExamnumber(text);
    143             }else if(i==4){
    144                 score.setTestTime(text);
    145             }else if(i==5){
    146                 score.setTotalScore(text.substring(0, 3));
    147                 score.setListen(text.substring(8, 11));
    148                 score.setReading(text.substring(16, 20));
    149                 score.setTranslate(text.substring(27, 30));
    150             }
    151         }
    152         list.add(score);
    153         return list;
    154     }
    155 }
    156 
    157 ---------------------------------------------------------------------------
    158 package cn.liuning.javabean;
    159 
    160 public class Score {
    161     private String name;
    162     private String school;
    163     private String category;
    164     private String examnumber;
    165     private String testTime;
    166     private String totalScore;
    167     private String listen;
    168     private String reading;
    169     private String translate;
    170     
    171     public String getName() {
    172         return name;
    173     }
    174     public void setName(String name) {
    175         this.name = name;
    176     }
    177     public String getSchool() {
    178         return school;
    179     }
    180     public void setSchool(String school) {
    181         this.school = school;
    182     }
    183     public String getCategory() {
    184         return category;
    185     }
    186     public void setCategory(String category) {
    187         this.category = category;
    188     }
    189     public String getExamnumber() {
    190         return examnumber;
    191     }
    192     public void setExamnumber(String examnumber) {
    193         this.examnumber = examnumber;
    194     }
    195     public String getTestTime() {
    196         return testTime;
    197     }
    198     public void setTestTime(String testTime) {
    199         this.testTime = testTime;
    200     }
    201     public String getTotalScore() {
    202         return totalScore;
    203     }
    204     public void setTotalScore(String totalScore) {
    205         this.totalScore = totalScore;
    206     }
    207     public String getListen() {
    208         return listen;
    209     }
    210     public void setListen(String listen) {
    211         this.listen = listen;
    212     }
    213     public String getReading() {
    214         return reading;
    215     }
    216     public void setReading(String reading) {
    217         this.reading = reading;
    218     }
    219     public String getTranslate() {
    220         return translate;
    221     }
    222     public void setTranslate(String translate) {
    223         this.translate = translate;
    224     }
    225 }
  • 相关阅读:
    多线程中的静态代理模式
    ARP报文
    静态链表代码
    顺序表中的思路
    数据结构与算法
    我是见鬼了吗?这是史上最邪恶的脚本!没有之一
    细说"回车"和"换行"的故事
    SVN版本控制系统搭建(结合http服务)
    cooike和session到底是个啥
    Python3中 if __name__=='__main__'是个什么意思
  • 原文地址:https://www.cnblogs.com/liun1994/p/3960795.html
Copyright © 2020-2023  润新知