تصف هذه المقالة تنفيذ Java لزحف جميع الوظائف السابقة. شاركه للرجوع إليه ، على النحو التالي:
لا يزال يتعين عليك حلم ، ماذا لو تم تحقيقه؟ أعتقد أن الأصدقاء الذين يشترون كرات Shuangse في كثير من الأحيان وسيكون لدي سؤال ، وهو ما هي نتائج كرات Shuangse السابقة؟ يعجبني ما إذا كانت الكرة الملونة الثانية قد فازت بالجائزة الأولى في الفترة السابقة؟ إذا تم الفوز به ، يمكنني التخلي عن هذا الرهان بشكل أساسي ، لأنه لا ينبغي أن يكون هناك تعادلان متتاليان في كرات الألوان الثانية في التاريخ ، أليس كذلك؟ إذن ما هي نتائج السحب السابقة؟ كتبت فصلًا بسيطًا في Java لزحف جميع نتائج اليانصيب المزدوج للكرة. أردت في الأصل تطوير إصدار Android ، ولكن نظرًا لأن واجهة المستخدم وأشياء أخرى تستغرق وقتًا للاستعداد ، سأقوم بتطويره مرة أخرى إذا كانت لدي الفرصة.
استيراد java.io.bufferedReader ؛ استيراد java.io.bufferedWriter ؛ استيراد java.io.file ؛ استيراد java.io.filewriter ؛ استيراد java.io.ioException ؛ استيراد java.io.inputerstream ؛ استيراد java.io.inputstreamreader ؛ استيراد java.htttpurlconnection ؛ 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 ("geting ...") ؛ mstringBuffer = new StringBuffer () ؛ String baseurlprefix = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_" ؛ سلسلة 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 ؛ سلسلة pagecontent = gethtmlString (url) ؛ if (pageContent! = null &&! pageContent.equals ("")) {getOnetermContent (pageContent) ؛ } آخر {system.out.println ("thread" + i + "page lost") ؛ } جرب {thread.sleep (1200) ؛ } catch (استثناء e) {// todo: ملف الاستثناء}} ملف ملف = ملف جديد ("double color ball.txt") ؛ if (file.exists ()) {file.delete () ؛ } جرب {filewRiter writer = new filewRiter (file) ؛ BufferDwriter BufferedWriter = New BufferedWriter (كاتب) ؛ bufferedWriter.write (mstringBuffer.toString ()) ؛ bufferedWriter.close () ؛ الكاتب. } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ }. } system.out.println ("complete!") ؛ }/*** احصل على العدد الإجمالي للصفحات* param result*/private static int getPageCount (سلسلة السلسلة) {string regex = "// d+/" content.split ("/" ") ؛ استراحة؛ } if (splits! = null && splits.length == 2) {string countstring = splits [0] ؛ if (countstring! = null &&! countstring.equals ("")) {return integer.parseint (countstring) ؛ }} return 0 ؛ } / *** احصل على رمز مصدر صفحة الويب* regurn* / private static string gethtmlString (سلسلة الهدف) {string content = null ؛ httpurlconnection connect = null ؛ حاول {url url = url new (targeturl) ؛ اتصال = (httpurlConnection) url.openconnection () ؛ connection.setRequestMethod ("post") ؛ connection.setRequestProperty ("Assion-Agent" ، "Mozilla/4.0 (متوافق ؛ MSIE 7.0 ؛ Windows 7)") ؛ connection.setRequestProperty ("قبول" ، "صورة/GIF ، Image/X-XbitMap ، Image/JPEG ، Image/PJPEG ، Application/X-Shockwave-Flash ، Application/VND.MS-Powerpoint ، Application/VND.MS-Excel ، Application/Msword ، */ *") ؛ connection.setRequestProperty ("قبول اللغة" ، "ZH-CN") ؛ connection.setRequestProperty ("UA-CPU" ، "x86") ؛ // لماذا لا يوجد انحراف؟ connection.setRequestProperty ("قبول الترميز" ، "gzip") ؛ Connection.setRequestProperty ("نوع المحتوى" ، "Text/HTML") ؛ // keep-alive ، ما الفائدة؟ أنت لا تزور الموقع ، فأنت تجمعه. يا هاي. تخفيف الضغط على الآخرين يقلل من نفسك أيضًا. connection.setRequestProperty ("Connection" ، "Close") ؛ // لا تستخدم ذاكرة التخزين المؤقت ، إنها عديمة الفائدة ، لأننا لن نصل إلى رابط بشكل متكرر. (للبرنامج) اتصال. 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 () ؛ } bufferredreader reader = new BufferedReader (inputStreamReader جديد (inputStream ، "UTF-8")) ؛ StringBuilder Builder = new StringBuilder () ؛ خط السلسلة = فارغ ؛ بينما ((line = reader.ReadLine ())! = null) {builder.append (line) .Append ("/n") ؛ } content = builder.toString () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {if (connection! = null) {connection.disconnect () ؛ }} محتوى الإرجاع ؛ } private static void getOnetermContent (سلسلة pageContent) {string regex = "<td align =/" center/"style =/" padding-left: 10px ؛/"> // s // s]+؟ </em> </td>" ؛ نمط نمط = pattern.compile (regex) ؛ Matcher Matcher = pattern.matcher (pageContent) ؛ بينما (matcher.find ()) {string onetermContent = matcher.group () ؛ getOneterMnumbers (onetermcontent) ؛ }} private static void getOneterMnumbers (string onetermcontent) {string regex = "> // d+<" ؛ نمط نمط = pattern.compile (regex) ؛ Matcher Matcher = pattern.matcher (onetermContent) ؛ بينما (matcher.find ()) {string content = matcher.group () ؛ string ballnumber = content.substring (1 ، content.length ()-1) ؛ mstringbuffer.append (ballnumber) .Append ("") ؛ } mstringBuffer.append ("/r/n") ؛ }}نتائج التشغيل:
لمزيد من المعلومات حول المحتوى المتعلق بـ Java ، يرجى مراجعة موضوعات هذا الموقع: "ملخص لمهارات برمجة شبكة Java" ، "ملخص لمهارات برمجة Socket Java" ، "ملخص ملف Java و Signory Operation مهارات" المهارات "و" ملخصة "من Java Cy.
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.