HTML 페이지에서 간단한 크롤링 데이터 테이블

전능 어머니, 배우 영양의 정도에 의해 자신의 흰색 파충류 측면에서 간단한 예제를 제공 할 수 있으며,이 주에서, 모두가 함께 배우는.

 

우선, 당신은 당신이 원하는 데이터를 한 페이지에서 싶어했던, 당신은 페이지로 다음이 첫 페이지를 얻을해야 

Jsoup 직접 코드에 제한 쓰기 능력을 분석 한 후 문서 객체로 일련의 조작을 사용하여 :

 


org.jsoup.Jsoup 오기; 
오기 org.jsoup.nodes.Document; 
오기 org.jsoup.select.Elements; 

가져는 java.io *; 
가져의 java.net.URL; 
가져 java.net.URLConnection의, 
java.util의 클래스를 가져 .ArrayList; 
오기를 java.util.List; 

Public 클래스 테스트 { 

        공공 정적 무효 메인 (문자열 []에 args) {IOException이 발생 
            ( "START")에서 System.out.println을 
            시험 시험 새로운 새로운 D = () 
            문자열을 STR = D .getHtml (); 
            d.readHtml (STR) 
            에서 System.out.println ( "끝"); 

        }     페이지 문자열 URL에 의해 반환되는 전체 페이지 수 // 
        getHtml ()가 IOException가 {던졌습니다 공공 문자열
     
StringBuffer를 버퍼 = 새의 StringBuffer ();
        // 접속 URL 문자열 URLPath로서 = "http://www.dyhjw.com/dyhjw/etf.html"; URL의 URL = 새 URL (URLPath로서); URLConnection의 CONN = url.openConnection (); () = conn.getInputStream를에서의 InputStream; //字节流- "字符流InputStreamReader InputStreamReader 리더 = 새로운 InputStreamReader (에서는"UTF-8 "); //按行读出来 의 BufferedReader breader = 새의 BufferedReader (리더); //读取数据 문자열 라인 = ""; 반면 ((라인 breader.readLine = ())! = NULL) { buffer.append (행); } 버퍼를 리턴 + ""; } fWriter.append ( "     // 페이지의 문자열을 읽기 공공 무효 readHtml (문자열 HTML) { //使用Jsoup解析HTML 문서对象의成 문서 문서 = Jsoup.parse (HTML)         //获取页面中테이블的TR部分 요소는 TRS = document.select는 ( "테이블")을 선택 ( "TR").; 목록 <object [] "목록 = 새로운 ArrayList를 <> ();
        //输出的位置 파일 파일 = 새로운 파일 ( "D : //xxxx.txt"); FileWriter fWriter = NULL; (file.exists는 (!)) {경우 {시도 ) (file.createNewFile을; fWriter = 새로운 FileWriter (파일); 경우 (; 나는 trs.size () ", I = 1 int로 난을 ++) { 요소"(= trs.get (I)을 TDS ALL 기타 사항 서보 -OFF 오브젝트 [] = {OBJ tds.get (0)는 .text () 사용해 Double.parseDouble는 (tds.get (1)는 .text ()) 사용해 Double.parseDouble (tds.get (2)는 .text ()), TDS 갔지 (3)는 .text () tds.get (4)는 .text () }; 에는 list.add (OBJ); 문자열 TXT = ""; 대 (INT의 J = 0; J <tds.size (); J ++) { 경우 (TXT == "") { TXT = tds.get (j)는 .text (); 사용한다} else { TXT TXT = + "\의 t '+ tds.get (j)는 .text (); } } fWriter.append (TXT + "\ R \ n"); fWriter.flush (); } } 캐치 (IOException이 전자) { e.printStackTrace (); } 마지막으로 { {시도 ) fWriter.close을 (; } 캐치 (IOException이 전자) { e.printStackTrace (); } } } } }

  약간의 진전은 매일 서로를 격려

 

추천

출처www.cnblogs.com/lmtdb/p/11598497.html