Este artículo describe la implementación de Java de rastreo de todas las funciones anteriores. Compártelo para su referencia, como sigue:
Debe haber un sueño, ¿y si se realiza? Creo que los amigos que a menudo compran bolas de shuangse y yo tendré una pregunta, que es cuáles fueron los resultados de las bolas de Shuangse anteriores. Me gusta si la segunda bola de color ha ganado el primer premio en el período anterior. Si se ha ganado, básicamente puedo renunciar a esta apuesta, porque no debería haber dos sorteos consecutivos en las dos bolas de color de la historia, ¿verdad? Entonces, ¿cuáles fueron los resultados de los sorteos anteriores? Escribí una clase simple en Java para rastrear todos los resultados de la lotería de bola de doble color. Originalmente quería desarrollar la versión de Android, pero debido a que la interfaz de usuario y otras cosas toman tiempo para prepararse, la desarrollaré nuevamente si tengo la oportunidad.
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.iNStReamreer; 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 ("Geting ..."); 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; Cadena pageContent = gethtmlString (url); if (pageContent! = null &&! pageContent.equals ("")) {getOnetermContent (pageContent); } else {system.out.println ("hilo" + i + "página perdida"); } try {thread.sleep (1200); } catch (Exception e) {// tODO: manejar excepción}} archivo archivo = nuevo archivo ("double color ball.txt"); if (file.exists ()) {file.delete (); } try {FileWriter Writer = New FileWriter (archivo); BufferedWriter BufferedWriter = new BufferedWriter (escritor); BufferedWriter.Write (MStringBuffer.ToString ()); bufferedwriter.close (); escritor.close (); } Catch (ioException e) {// tODO Auto Generated BLOCK E.PrintStackTRace (); } // bufferedwriter escritor = new BufferedWriter (nuevas salidas)} else {System.out.println ("Las páginas de resultados son 0"); } System.out.println ("¡completo!"); }/*** Obtenga el número total de páginas* @param resultado*/private static int getPageCount (string result) {String regex = "// d+/"> Última página "; patrón = patrón.compile (regex); matcher matcher = patrón.matcher (resultado); string [] splits = null; while (matcher.find ()) {String Content Centres content.split ("/" "); romper; } if (Splits! = Null && Splits.length == 2) {String CountString = Splits [0]; if (countString! = null &&! countString.equals ("")) {return integer.parseInt (countString); }} return 0; } / *** Obtenga el código fuente de la página web* @return* / private static string gethtmlString (String TargetUrl) {String content = null; Httpurlconnection conexión = null; intente {url url = new URL (TargetUrl); conexión = (httpurlconnection) url.openconnection (); Connect.SetRequestMethod ("Post"); Connection.SetRequestProperty ("User-agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows 7)"); Connection.SetRequestProperty ("Acept", "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 ("Aceptación-lenguaje", "ZH-CN"); Connect.SetRequestProperty ("UA-CPU", "x86"); // ¿Por qué no hay desinflado? Connect.SetRequestProperty ("Aceptar-Encoding", "Gzip"); Connection.setRequestProperty ("Content-type", "Text/html"); // Keep-Alive, ¿de qué sirve? No está visitando el sitio web, lo está recopilando. Hola. Aliviar la presión sobre los demás también se está reduciendo. conexión.setRequestProperty ("conexión", "cerrar"); // No use caché, es inútil, porque no accederemos a un enlace con frecuencia. (Para el programa) Connection.SetUsecaches (falso); Connection.SetConnectTimeOut (6 * 1000); Connection.SetReadTimeOut (6 * 1000); Connect.SetDoOutput (verdadero); Connect.SetDoInput (verdadero); Connect.SetRequestProperty ("Charset", "UTF-8"); Connection.Connect (); if (200 == Connection.getResponseCode ()) {inputStream inputStream = null; if (conexión.getContentEncoding ()! = NULL &&! Connection.getContentEncoding (). Equals ("")) {String codening = Connection.getContentEncoding (). tOlowerCase (); if (encode! = null &&! codede.equals ("") && codexof ("gzip")> = 0) {inputStream = new GZIPInputStream (conexión.getInputStream ()); }} if (null == inputStream) {inputStream = Connection.getInputStream (); } BufferedReader lector = new BufferedReader (new InputStreamReader (inputStream, "UTF-8")); StringBuilder Builder = new StringBuilder (); Línea de cadena = nulo; while ((línea = lector.readline ())! = null) {builder.append (línea) .append ("/n"); } content = builder.ToString (); }} catch (Exception e) {E.PrintStackTrace (); } finalmente {if (conexión! = null) {Connection.Disconnect (); }} contenido de retorno; } 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 (); getOnetermnumber (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"); }}Resultados de ejecución:
Para obtener más información sobre el contenido relacionado con Java, consulte los temas de este sitio: "Resumen de las habilidades de programación de redes de Java", "Resumen de las habilidades de programación de socket de Java", "Resumen de Java Archivo y Habilidades de operación de directorio", "Tutorial sobre la estructura de datos de Java y algoritmo", "Resumen de las habilidades de operación de Java Dom" y "Summary of Java COMERACIÓN COMINACIÓN CABACHA" Habilidades ""
Espero que este artículo sea útil para la programación Java de todos.