2016-07-28 3 views
1

자바에서 jSoup 라이브러리를 사용하여 this link에서 근근이 살아가고 있습니다. 저의 근원은 아주 잘 작동하고 제가 얻은 모든 요소를 ​​어떻게 나누는 지 묻고 싶습니다. 여기jSoup 스크랩 결과 분할

결과에서 내 소스

package javaapplication1; 

import java.io.IOException; 
import java.sql.SQLException; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

public class coba { 

    public static void main(String[] args) throws SQLException { 
    MasukDB db=new MasukDB();   
     try { 
      Document doc = null; 
      for (int page = 1; page < 2; page++) { 
       doc = Jsoup.connect("http://hackaday.com/page/" + page).get(); 
       System.out.println("title : " + doc.select(".entry-title>a").text() + "\n"); 
       System.out.println("link : " + doc.select(".entry-title>a").attr("href") + "\n"); 
       System.out.println("body : " + String.join("", doc.select(".entry-content p").text()) + "\n"); 
       System.out.println("date : " + doc.select(".entry-date>a").text() + "\n"); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

이 웹 사이트의 모든 페이지에 한 줄이되고, 방법들을 분할하는? 모든 기사에 링크를 얻는 방법, 나는 덕분에있는 당신이 그들의 텍스트를 긁어되어, 전체 문서를 검색하고 링크 목록을 반환합니다

답변

0
doc.select(".entry-title>a").text() 

이 메이트 링크 측에서 내 CSS 선택기는 여전히 잘못된 생각 마디. 그러나, 당신은 아마 각 기사를 긁고 그 각각에서 관련된 자료를 얻고 싶다.

Document doc; 
    for (int page = 1; page < 2; page++) { 

     doc = Jsoup.connect("http://hackaday.com/page/" + page).get(); 

     // get a list of articles on page 
     Elements articles = doc.select("main#main article"); 

     // iterate article list 
     for (Element article : articles) { 

      // find the article header, which includes title and date 
      Element header = article.select("header.entry-header").first(); 

      // find and scrape title/link from header 
      Element headerTitle = header.select("h1.entry-title > a").first(); 
      String title = headerTitle.text(); 
      String link = headerTitle.attr("href"); 

      // find and scrape date from header 
      String date = header.select("div.entry-meta > span.entry-date > a").text(); 

      // find and scrape every paragraph in the article content 
      // you probably will want to further refine the logic here 
      // there may be paragraphs you don't want to include 
      String body = article.select("div.entry-content p").text(); 

      // view results 
      System.out.println(
        MessageFormat.format(
          "title={0} link={1} date={2} body={3}", 
          title, link, date, body)); 
     } 
    } 

는 이러한 종류의 데이터를 긁어하는 방법에 대한 자세한 예는 CSS Selectors를 참조하십시오.

+0

대단히 고마워요. 스크립트가 잘 작동하고 현명한 것 같습니다. 파이썬을 사용하여 제 치료와 거의 같습니다 : D thanks again – jethow