国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java實現爬取往期所有雙色球開獎結果功能示例

2024-07-14 08:41:33
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現爬取往期所有雙色球開獎結果功能。分享給大家供大家參考,具體如下:

夢想還是要有的,萬一實現了呢?我相信經常買雙色球的朋友和我都會有一個疑問,就是往期雙色球的開獎結果是什么?我鐘意的這一注雙色球在往期是否開過一等獎,如果開過的話,基本上可以放棄這一注了,因為歷史上應該沒有出現過兩期雙色球開獎完全一致的吧?那么往期的開獎結果是什么呢?我自己用Java寫了一個簡易的類,爬取所有雙色球開獎結果,本來想開發安卓版本的,由于UI等需要時間準備,有緣再開發吧。

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.zip.GZIPInputStream;public class AllBalls { private static StringBuffer mStringBuffer; public static void main(String[] args) {  System.out.println("正在獲取...");  mStringBuffer = new StringBuffer();  String baseUrlPrefix = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_";  String baseUrlSuffix = ".html";  String homeUrl = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html";  String pageCountContent = getHtmlString(homeUrl);  int pageCount = getPageCount(pageCountContent);  if (pageCount > 0) {   for (int i = 1; i <= pageCount; i++) {    String url = baseUrlPrefix + i + baseUrlSuffix;    String pageContent = getHtmlString(url);    if (pageContent != null && !pageContent.equals("")) {     getOneTermContent(pageContent);    } else {     System.out.println("第" + i + "頁丟失");    }    try {     Thread.sleep(1200);    } catch (Exception e) {     // TODO: handle exception    }   }   File file = new File("雙色球.txt");   if (file.exists()) {    file.delete();   }   try {    FileWriter writer = new FileWriter(file);    BufferedWriter bufferedWriter = new BufferedWriter(writer);    bufferedWriter.write(mStringBuffer.toString());    bufferedWriter.close();    writer.close();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   //BufferedWriter writer = new BufferedWriter(new OutputS)  } else {   System.out.println("結果頁數為0");  }  System.out.println("完成!"); } /**  * 獲取總頁數  * @param result  */ private static int getPageCount(String result) {  String regex = "//d+/">末頁";  Pattern pattern = Pattern.compile(regex);  Matcher matcher = pattern.matcher(result);  String[] splits = null;  while (matcher.find()) {   String content = matcher.group();   splits = content.split("/"");   break;  }  if (splits != null && splits.length == 2) {   String countString = splits[0];   if (countString != null && !countString.equals("")) {    return Integer.parseInt(countString);   }  }  return 0; }  /**  * 獲取網頁源碼  * @return  */ private static String getHtmlString(String targetUrl) {  String content = null;  HttpURLConnection connection = null;  try {   URL url = new URL(targetUrl);   connection = (HttpURLConnection) url.openConnection();   connection.setRequestMethod("POST");   connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows 7)");   connection.setRequestProperty("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*");   connection.setRequestProperty("Accept-Language", "zh-cn");   connection.setRequestProperty("UA-CPU", "x86");   //為什么沒有deflate呢   connection.setRequestProperty("Accept-Encoding", "gzip");   connection.setRequestProperty("Content-type", "text/html");   //keep-Alive,有什么用呢,你不是在訪問網站,你是在采集。嘿嘿。減輕別人的壓力,也是減輕自己。   connection.setRequestProperty("Connection", "close");   //不要用cache,用了也沒有什么用,因為我們不會經常對一個鏈接頻繁訪問。(針對程序)   connection.setUseCaches(false);   connection.setConnectTimeout(6 * 1000);   connection.setReadTimeout(6 * 1000);   connection.setDoOutput(true);   connection.setDoInput(true);   connection.setRequestProperty("Charset", "utf-8");   connection.connect();   if (200 == connection.getResponseCode()) {    InputStream inputStream = null;    if (connection.getContentEncoding() != null && !connection.getContentEncoding().equals("")) {     String encode = connection.getContentEncoding().toLowerCase();     if (encode != null && !encode.equals("") && encode.indexOf("gzip") >= 0) {      inputStream = new GZIPInputStream(connection.getInputStream());     }    }    if (null == inputStream) {     inputStream = connection.getInputStream();    }    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));    StringBuilder builder = new StringBuilder();    String line = null;    while ((line = reader.readLine()) != null) {     builder.append(line).append("/n");    }    content = builder.toString();   }  } catch (Exception e) {   e.printStackTrace();  } finally {   if (connection != null) {    connection.disconnect();   }  }  return content; } private static void getOneTermContent(String pageContent) {  String regex = "<td align=/"center/" style=/"padding-left:10px;/">[//s//S]+?</em></td>";  Pattern pattern = Pattern.compile(regex);  Matcher matcher = pattern.matcher(pageContent);  while (matcher.find()) {   String oneTermContent = matcher.group();   getOneTermNumbers(oneTermContent);  } } private static void getOneTermNumbers(String oneTermContent) {  String regex = ">//d+<";  Pattern pattern = Pattern.compile(regex);  Matcher matcher = pattern.matcher(oneTermContent);  while (matcher.find()) {   String content = matcher.group();   String ballNumber = content.substring(1, content.length()-1);   mStringBuffer.append(ballNumber).append(" ");  }  mStringBuffer.append("/r/n"); }}

運行結果:

Java,雙色球,開獎結果

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 健康| 临汾市| 辽源市| 寻甸| 常德市| 寿宁县| 上杭县| 光山县| 高碑店市| 延川县| 建宁县| 视频| 白山市| 班戈县| 博兴县| 分宜县| 砀山县| 朔州市| 固阳县| 定西市| 抚州市| 元谋县| 合水县| 夹江县| 三明市| 泸定县| 岳普湖县| 麟游县| 宽甸| 东乡| 务川| 大名县| 太仆寺旗| 万山特区| 昌都县| 莱芜市| 建水县| 南昌县| 渝中区| 杭州市| 信阳市|