이 기사에서는 이전 기능을 크롤링하는 Java 구현에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
당신은 여전히 꿈이 있어야합니다. 실현되면 어떻게해야합니까? 나는 종종 Shuangse Balls를 사는 친구들과 질문이있을 것이라고 믿습니다. 이전 Shuangse 공의 결과는 무엇입니까? 두 번째 컬러 볼이 지난 기간에 1 위를 차지했는지 여부는 좋아요? 그것이 이겼다면, 나는 역사상 두 개의 두 번째 컬러 볼에 두 번의 연속 무승부가 없어야하기 때문에 기본적 으로이 베팅을 포기할 수 있습니다. 그렇다면 이전 무승부의 결과는 무엇입니까? 나는 Double Color Ball Lottery의 모든 결과를 기어 다니기 위해 Java에서 간단한 수업을 썼습니다. 나는 원래 Android 버전을 개발하고 싶었지만 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.net.net.net.net.net.net.net. 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 (); 문자열 baseurlprefix = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_"; 문자열 baseurlsuffix = ".html"; String homeurl = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html"; 문자열 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); } else {system.out.println ( "스레드" + i + "페이지 손실"); } try {thread.sleep (1200); } catch (예외 e) {// todo : handing exception}} 파일 파일 = 새 파일 ( "double color ball.txt"); if (file.exists ()) {file.delete (); } try {filewriter writer = new filewriter (파일); BufferedWriter BufferedWriter = New BufferedWriter (Writer); BufferedWriter.write (mstringbuffer.toString ()); BufferedWriter.close (); Writer.close (); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } // BufferedWriter Writer = new BufferedWriter (new outputs)} else {System.out.println ( "결과 페이지는 0"); } system.out.println ( "완료!"); }/*** 총 페이지 수* @param result*/private static int getPageCount (문자열 결과) {String regex = "// d+/"> 마지막 페이지 "; Pattern Pattern = Pattern.comPile (regex); matcher = pattern.matcher (rist [] splits = null; content.split ( "/" "); 부서지다; } if (splits! = null && splits.length == 2) {String countstring = splits [0]; if (countstring! = null &&! countstring.equals ( "")) {return integer.parseint (countstring); }} 반환 0; } / *** 웹 페이지 소스 코드를 가져옵니다* @return* / private static string gethtmlstring (String targeturl) {String content = null; httpurlconnection connection = null; try {url url = new url (targeturl); 연결 = (httpurlConnection) url.openConnection (); Connection.setRequestMethod ( "post"); Connection.setRequestProperty ( "사용자 에이전트", "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"); // 왜 deflate가 없습니까? Connection.setRequestProperty ( "허용 인코딩", "gzip"); Connection.setRequestProperty ( "content-type", "text/html"); // 계속 유지, 사용은 무엇입니까? 당신은 웹 사이트를 방문하지 않고 그것을 수집하고 있습니다. 이봐. 다른 사람에 대한 압력을 완화하는 것도 자신을 줄입니다. Connection.SetRequestProperty ( "Connection", "Close"); // 캐시를 사용하지 않으면 링크에 자주 액세스하지 않기 때문에 쓸모가 없습니다. (프로그램의 경우) Connection.setUeCaches (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 (); 문자열 라인 = null; while ((line = reader.readline ())! = null) {builder.append (line) .append ( "/n"); } content = builder.toString (); }} catch (예외 e) {e.printstacktrace (); } 마침내 {if (connection! = null) {connection.disconnect (); }} return 컨텐츠; } private static void getOneterMcontent (String pageContent) {String regex = "<td align =/"center/"style =/"padding-left : 10px;/"> [// s]+? </em> </td>"; Pattern Pattern = Pattern.compile (Regex); 매치 업체 매치 자 = 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); 매치 업체 매치 자 = 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 Network 프로그래밍 기술 요약", "Java 소켓 프로그래밍 기술 요약", "Java 파일 및 디렉토리 운영 기술 요약", "Java 데이터 구조 및 알고리즘에 대한 자습서", "Java Operation Dom Node Skills의 요약"및 "Java Cache 운영 기술 요약"
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.