<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java爬取12306余票

        一、前言

        

        今年國慶和中秋一起放,雖然很歡快,但是沒有票了!!!

        于是自己倒騰了一個查詢余票的小程序。

       

        二、準備工作

         

        1、先打開12306的頁面

        

        2、然后右鍵檢查,點network

        

        3、再點一下12306頁面上的查詢,就可以看到發起了ajax請求

        

        4、點第一個,很明顯是json串,這樣就方便很多

        

        5、復制第二個的鏈接

       

        

        比如我這里就是:

            https://kyfw.12306.cn/otn/leftTicket/queryX?leftTicketDTO.train_date=2017-10-01&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=NJH&purpose_codes=ADULT

       

        三、開始工作

       

         這是通過HttpURLConnection來發起一個請求,里面的網址就填準備工作里面復制的那串

        /**
           * 發起一個http請求
           */
          public static void sendHttp(){
              URL url;
              int responsecode;
              HttpURLConnection urlConnection;
              BufferedReader reader;
              String line;
              try{
                  //忽略Ssl(針對12306)
                  SslUtils.ignoreSsl();
                  //生成一個URL對象
                  url=new URL("這里填你要訪問的網址");
                  /**
                   * 這是為了防止12306對同一ip多次訪問進行限制
                   * 這里填的ip是暫時有效的,想要獲取更多就得自己去找 搜索代理ip
                   */
                  System.getProperties().setProperty("proxySet", "true");
                  System.setProperty("http.proxyHost", "120.78.15.63");  
                  System.setProperty("http.proxyPort", "80"); 
                  //打開URL
                  urlConnection = (HttpURLConnection)url.openConnection();
                  //偽造一個請求頭 一般網頁不用,有些網站會看你有沒有請求頭,比如 12306......
                  urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0"); 
                  urlConnection.setRequestProperty("Host","kyfw.12306.cn");
                  urlConnection.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                  urlConnection.setRequestProperty("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
                  urlConnection.setRequestProperty("Accept-Encoding","identity");
                  urlConnection.setRequestProperty("Connection","keep-alive");
                  urlConnection.setRequestProperty("Upgrade-Insecure-Requests","1");
                  //獲取服務器響應代碼
                  responsecode=urlConnection.getResponseCode();
                  //假如響應代碼為200,就是代表成功
                  if(responsecode==200){
                      reader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"UTF-8"));
                      while((line=reader.readLine())!=null){
                          System.out.println(line);//在這里干你想干的事情
                      }
                  }else{
                      System.out.println("獲取不到網頁的源碼,服務器響應代碼為:"+responsecode);
                  }
              }catch(Exception e){
                  System.out.println("獲取不到網頁的源碼,出現異常:"+e);
              }
          }

         

        跑這個方法之前還需要用到一個類,是用來忽略12306的證書問題

      package domain;
      
      import java.security.cert.CertificateException;
      import java.security.cert.X509Certificate;
      
      import javax.net.ssl.HostnameVerifier;
      import javax.net.ssl.HttpsURLConnection;
      import javax.net.ssl.SSLContext;
      import javax.net.ssl.SSLSession;
      import javax.net.ssl.TrustManager;
      import javax.net.ssl.X509TrustManager;
      
      public class SslUtils {
      
          public static void trustAllHttpsCertificates() throws Exception {
              TrustManager[] trustAllCerts = new TrustManager[1];
              TrustManager tm = new miTM();
              trustAllCerts[0] = tm;
              SSLContext sc = SSLContext.getInstance("SSL");
              sc.init(null, trustAllCerts, null);
              HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
          }
      
          static class miTM implements TrustManager,X509TrustManager {
              public X509Certificate[] getAcceptedIssuers() {
                  return null;
              }
      
              public boolean isServerTrusted(X509Certificate[] certs) {
                  return true;
              }
      
              public boolean isClientTrusted(X509Certificate[] certs) {
                  return true;
              }
      
              public void checkServerTrusted(X509Certificate[] certs, String authType)
                      throws CertificateException {
                  return;
              }
      
              public void checkClientTrusted(X509Certificate[] certs, String authType)
                      throws CertificateException {
                  return;
              }
          }
      
      
          public static void ignoreSsl() throws Exception{
              HostnameVerifier hv = new HostnameVerifier() {
                  public boolean verify(String urlHostName, SSLSession session) {
                      return true;
                  }
              };
              trustAllHttpsCertificates();
              HttpsURLConnection.setDefaultHostnameVerifier(hv);
          }
      }

       

        然后跑一下這個方法,看到獲取到了json

        

       

       

        就可以對這串字符串為所欲為了,嘿嘿嘿

       

       

        四、最后

         

        一般查到余票都是發郵件,不會JavaMail的可以看我另一篇博客,開箱即用。

       

        轉載需標注原文地址!

       

      posted @ 2017-09-26 10:23  夏日淺笑、  閱讀(3195)  評論(7)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品成人久久av| 亚洲AV无码破坏版在线观看| 国产精品国三级国产av| 日本偷拍自影像视频久久| 十八禁午夜福利免费网站| 亚洲色大成网站www永久男同| 老熟妇欲乱一区二区三区| 人妻少妇精品中文字幕| 在办公室被c到呻吟的动态图| 国产综合亚洲区在线观看| 开心激情站一区二区三区| 女同另类激情在线三区| 久热这里有精品免费视频| 免费无码AV一区二区波多野结衣 | 日韩精品久久久肉伦网站| 伊人成人在线视频免费| 国产精品内射在线免费看| 伊人狠狠色j香婷婷综合| 在线中文字幕国产一区| 国产精品无遮挡一区二区| 少妇人妻偷人精品视蜜桃| 福利视频在线一区二区| 她也色tayese在线视频| 唐人社视频呦一区二区| 临沧市| 日韩大片看一区二区三区| 国产超高清麻豆精品传媒麻豆精品| 国产97色在线 | 免费| 老熟女熟妇一区二区三区| 大香伊蕉在人线国产最新2005| 精品国产一区二区三区四区| 天堂va欧美ⅴa亚洲va在线| 国产精品视频免费一区二区三区| 玩弄放荡人妻少妇系列| 精品 无码 国产观看| 亚洲国产成人无码av在线播放| 一区二区三区鲁丝不卡| 日本少妇被黑人xxxxx| 精品一日韩美女性夜视频| 一卡2卡三卡4卡免费网站| 起碰免费公开97在线视频|