Artikel ini menjelaskan implementasi Java merangkak semua fungsi sebelumnya. Bagikan untuk referensi Anda, sebagai berikut:
Anda masih harus bermimpi, bagaimana jika direalisasikan? Saya percaya bahwa teman -teman yang sering membeli bola Shaangsse dan saya akan punya pertanyaan, itulah hasil dari bola Shaangsse sebelumnya? Saya suka apakah bola warna kedua telah memenangkan hadiah pertama di periode sebelumnya? Jika telah dimenangkan, pada dasarnya saya dapat melepaskan taruhan ini, karena tidak boleh ada dua undian berturut -turut dalam dua bola warna kedua dalam sejarah, kan? Jadi apa hasil dari undian sebelumnya? Saya menulis kelas sederhana di Java untuk merangkak semua hasil lotere bola warna ganda. Saya awalnya ingin mengembangkan versi Android, tetapi karena UI dan hal -hal lain membutuhkan waktu untuk mempersiapkan, saya akan mengembangkannya lagi jika saya memiliki kesempatan.
impor java.io.bufferedReader; impor java.io.bufferedwriter; impor java.io.file; impor java.io.filewrit; java.net.url; import java.util.regex.matcher; import java.util.regex.pattern; import java.util.zip.gzipinputStream; kelas publik allball {private static stringbuffer mstringbuffer; public static void main (string [] args) {system.out.println ("geting ..."); mStringBuffer = stringBuffer baru (); 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 ("Thread" + i + "Page Lost"); } coba {thread.sleep (1200); } catch (exception e) {// todo: handle exception}} file file = file baru ("Double Color Ball.txt"); if (file.exists ()) {file.delete (); } coba {FileWriter writer = FileWriter baru (file); BufferedWriter BufferedWriter = New BufferedWriter (penulis); bufferedwriter.write (mStringBuffer.tostring ()); bufferedwriter.close (); writer.close (); } catch (ioException e) {// TODO AUTO-ENCEALATED Catch Block E.PrintStackTrace (); } // BufferedWriter Writer = BufferedWriter baru (output baru)} else {System.out.println ("Hasil Hasil adalah 0"); } System.out.println ("Lengkap!"); }/*** Dapatkan jumlah total halaman* @param hasil*/private static int getPagecount (hasil string) {string regex = "// d+/"> halaman terakhir "; pola pola = pola.compile (regex); pencocokan pencocokan = pola.matcher (hasil); string [] split = null; sangeer. content.split ("/" "); merusak; } if (splits! = null && splits.length == 2) {string countString = splits [0]; if (countstring! = null &&! countstring.equals ("")) {return integer.parseint (countstring); }} return 0; } / *** Dapatkan kode sumber halaman web* @return* / private static string getHtmlString (string targetURl) {string content = null; Koneksi httpurlconnection = null; coba {url url = url baru (targetUrl); koneksi = (httpurlconnection) url.openconnection (); Connection.setRequestMethod ("Post"); Connection.setRequestProperty ("agen-pengguna", "mozilla/4.0 (kompatibel; MSIE 7.0; windows 7)"); connection.setRequestProperty ("AcCECT", "IMAGE/GIF, Image/X-XBitmap, Image/JPEG, Image/PJPEG, Application/X-Shockwave-Flash, Application/Vnd.MS-PowerPoint, Application/VND.MS-EXCEL, Aplikasi/Msword, */ *"); Connection.setRequestProperty ("Accept-Language", "ZH-CN"); Connection.setRequestProperty ("UA-CPU", "X86"); // Mengapa tidak ada kempes? Connection.setRequestProperty ("Accept-Ending", "Gzip"); connection.setRequestProperty ("tipe konten", "teks/html"); // Keep-seive, apa gunanya? Anda tidak mengunjungi situs web, Anda mengumpulkannya. hey-hey. Menghilangkan tekanan pada orang lain juga mengurangi diri sendiri. Connection.setRequestProperty ("Connection", "Close"); // Jangan gunakan cache, itu tidak berguna, karena kami tidak akan sering mengakses tautan. (Untuk program) 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 = BufferedReader baru (inputStreamReader baru (inputStream, "UTF-8"))); StringBuilder builder = new StringBuilder (); Garis string = null; while ((line = reader.readline ())! = null) {builder.append (line) .Append ("/n"); } content = builder.toString (); }} catch (Exception e) {e.printstacktrace (); } akhirnya {if (koneksi! = null) {connection.disconnect (); }} mengembalikan konten; } private static void getOnetermContent (string pagecontent) {string regex = "<td align =/" center/"style =/" padding-left: 10px;/"> [// s // s]+? </em> </td>"; Pola pola = pola.compile (regex); Pencocokan pencocokan = pola.matcher (pagecontent); while (matcher.find ()) {string onetermContent = matcher.group (); getOnetermnumbers (OnetermContent); }} private static void getOnetermNumbers (string onetermContent) {string regex = "> // d+<"; Pola pola = pola.compile (regex); Pencocokan pencocokan = pola.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"); }}Hasil Menjalankan:
Untuk informasi lebih lanjut tentang konten terkait Java, silakan periksa topik -topik situs ini: "Ringkasan Keterampilan Pemrograman Jaringan Java", "Ringkasan Keterampilan Pemrograman Soket Java", "Ringkasan File Java dan Keterampilan Operasi Direktori", "Tutorial tentang Struktur Data Java dan Algorithme", Ringkasan Keterampilan Operasi JAVA "Ringkasan JAVA" Ringkasan JAVA "Ringkasan Operasi Java Ringkasan" Ringkasan Operasi Java Ringkasan "
Saya harap artikel ini akan membantu pemrograman Java semua orang.