Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
특정페이지를 jsoup을 이용하여 파싱하는 샘플소스
import org.apache.derby.tools.sysinfo;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.Jsoup;
public class JSoupTest {
public static void main(String[] args) {
Document doc = null;
try {
//doc = Jsoup.connect("http://www.javatpoint.com").get();
doc = Jsoup.connect("http://www.xxx.com/product/product_list.php?cods=ca1&aci_code=11")
.data("page", "5")
.data("srch_pagesize","30")
.userAgent("Mozilla")
.post();
} catch (Exception e) {
System.out.println("exception : "+e.getMessage());
}
//String title = doc.title();
//System.out.println("title : "+title);
//System.out.println("doc : "+doc.toString());
// tbody에 있는 tr을 모두 구함
Elements trs = doc.select("tbody tr");
System.out.println("tr개수 : "+trs.size());
// 각 tr별로 처리함
for(int i = 1; i < trs.size(); i++) {
System.out.println(trs.get(i));
// tr밑에 있는 td를 추출한다.
Elements tds = trs.select("td");
System.out.println("물품명 :"+tds.get(1).text().trim());
Elements href = tds.get(0).select("a[href]");
Elements img = tds.get(0).select("img[src]");
// href속성의 값을 구하면서 완성된 URL를 리턴한다.
System.out.println("물품 상세 보기 링크 : "+href.attr("abs:href").toString());
// src속성의 값을 구하면서 완성된 URL를 리턴한다.
System.out.println("물품 이미지 링크 : "+img.attr("abs:src").toString());
System.out.println("현재가 : "+tds.get(2).text().trim());
System.out.println("배송비 : "+tds.get(3).text().trim());
System.out.println("입찰수 : "+tds.get(4).text().trim());
System.out.println("판매자 : "+tds.get(5).text().trim());
System.out.println("종료일 : "+tds.get(6).text().trim());
System.out.println("========================================================================================");
}
}
}