JAVA

[Java] Jsoup 자바 웹 페이지 크롤링(HTML Parsing)

오탄자 2020. 6. 18. 22:50

Java Jsoup 자바 웹 페이지 크롤링

 

 

 

Java로 웹 크롤링을 하기 위해 Jsoup 라이브러리를 사용했다.

메이븐일 경우 dependency로 추가하거나 lib 파일을 다운받는다.

 

Jsoup Maven dependency

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.13.1</version>
</dependency>

 

lib 폴더를 만들고 jsoup.jar 파일을 import 한다.

 

프로젝트 우클릭 > Build Path > Configure Build Path.. 를 클릭한다.

Add JARs.. 를 눌러 lib 폴더에 있는 jsoup.jar를 절대경로로 프로젝트에 추가한다.

Referenced Libraries 에 jsoup.jar 가 추가되었는지 확인한다.

 

 

 

 

네이버 금융의 국내증시 화면을 크롤링 하려고 한다.

url에 크롤링 하고자 하는 url을 넣어준다.

Jsoup.connect(url)로 화면의 elements들을 긁어온다.

.select로 div, p, table, tr 등의 엘리먼트들을 선택할 수 있고, .class명으로 클래스나 id값으로 선택도 가능하다.

for문으로 긁어온 엘리멘트들을 알맞게 사용하면 된다.

 

public class WebCrawing {
  public static void main(String[] args) {
    String url = "https://finance.naver.com/sise/dividend_list.nhn";
    Document doc = null;
    
    try{
      doc = Jsoup.connect(url).get();
    } catch (Exception e) {
      e.printStackTrace();
    }
    
    Elements element = doc.select("div.bnd_wid");
    String title = element.select("h3").text();
    
    for(Element e : element.select("table tr")) {
      System.out.println(e.text());
    }
  }
}

 

 

for문으로 table의 tr을 읽어온 결과이다.

종목명 현재가 기준월 배당금 수익률 (%) 배당성향 (%) ROE (%) PER (배) PBR (배) 과거 3년 배당금 
1년전 2년전 3년전 

하나니켈1호 211 20.02 710 336.49 - - - - 460 365 195 
하나니켈2호 609 20.02 710 116.58 - - - - 460 375 225 
베트남개발1 287 20.02 90 31.21 - - - - 4 199 90 
동양고속 26,800 19.12 4,700 17.54 38.41 26.85 2.41 0.55 1,000 635 153 
두산우 36,300 19.12 5,250 14.46 23.78 23.52 3.86 0.80 5,250 5,150 5,150 


두산 38,000 19.12 5,200 13.68 23.78 23.52 3.86 0.80 5,200 5,100 5,100 
웅진씽크빅 2,380 19.12 310 13.05 -29.05 -35.62 -2.38 0.83 0 122 0 
대신증권우 8,580 19.12 1,050 12.24 72.88 4.79 10.95 0.41 670 660 600 
한국기업평가 71,200 19.12 8,618 12.10 188.86 20.96 13.05 2.44 2,360 2,250 1,947 
대신증권2우B 8,290 19.12 1,000 12.06 72.88 4.79 10.95 0.41 620 610 550 


대동전자 4,345 20.03 500 11.51 97.78 3.26 7.36 0.19 0 0 0 
삼양옵틱스 9,210 19.12 1,000 10.86 74.18 35.97 9.47 3.27 1,100 1,300 1,200 
한국ANKOR유전 1,745 19.12 185 10.60 - - - - 215 265 295 
AJ네트웍스 2,860 19.12 300 10.49 30.56 15.18 5.06 0.73 100 86 60 
대신증권 9,660 19.12 1,000 10.35 72.88 4.79 10.95 0.41 620 610 550 


유아이엘 4,005 19.12 400 9.99 101.34 4.92 13.65 0.64 400 500 350 
한국금융지주우 31,950 19.12 2,962 9.27 20.08 18.14 5.28 0.84 1,862 1,662 862 
세아특수강 10,100 19.12 900 8.91 69.02 3.47 10.51 0.36 900 750 750 
태림포장 3,350 19.09 290 8.66 107.38 5.88 16.19 0.96 233 8 8 
유성기업 2,400 19.12 200 8.33 29.50 6.47 3.97 0.25 100 120 120 


천일고속 60,100 19.12 5,000 8.32 648.34 1.28 138.47 1.96 6,000 15,300 8,000 
기업은행 8,080 19.12 670 8.29 23.83 7.36 4.93 0.35 690 617 480 
쌍용양회 5,100 19.12 420 8.23 161.94 7.02 21.86 1.59 370 214 32 
한국패러랠 2,020 19.12 165 8.17 - - - - 200 205 80 
DGB금융지주 5,110 19.12 410 8.02 21.18 7.31 3.68 0.26 360 340 300 


효성 62,800 19.12 5,000 7.96 98.04 4.25 16.08 0.66 5,000 5,000 5,000 
우리금융지주 8,810 19.12 700 7.95 27.00 - 4.18 0.39 - - - 
동양생명 2,905 19.12 230 7.92 31.11 4.73 5.60 0.24 100 360 200 
씨엠에스에듀 5,370 19.12 425 7.91 128.94 15.29 16.14 2.55 260 300 300 
DB금융투자 3,175 19.12 250 7.87 21.34 7.15 3.70 0.25 250 100 0 


하나금융지주 27,000 19.12 2,100 7.78 25.78 8.77 4.63 0.38 1,900 1,550 1,050 
동부건설 9,040 19.12 700 7.74 25.82 15.30 3.05 0.45 300 0 0 
태경산업 4,835 19.12 370 7.65 51.77 8.91 8.08 0.70 220 200 200 
이베스트투자증권 4,540 19.12 345 7.60 33.74 11.23 5.50 0.55 485 485 515 
현대중공업지주 246,000 19.12 18,500 7.52 156.15 2.20 31.78 0.62 18,500 0 - 


금호산업 6,660 19.12 500 7.51 150.62 3.20 35.65 1.08 500 500 300 
한라홀딩스 26,700 19.12 2,000 7.49 51.01 4.69 11.72 0.54 2,000 1,350 1,250 
현대차3우B 54,100 19.12 4,050 7.49 35.35 4.32 11.20 0.45 4,050 4,050 4,050 
NH투자증권우 7,460 19.12 550 7.37 31.70 9.12 8.02 0.71 550 550 450 
현대차우 55,100 19.12 4,050 7.35 35.35 4.32 11.20 0.45 4,050 4,050 4,050 


정상제이엘에스 5,860 19.12 430 7.34 74.30 12.20 15.47 1.77 430 430 430 
미래에셋대우2우B 3,565 19.12 260 7.29 27.63 7.56 9.31 0.58 220 0 0 
부국증권우 17,150 19.12 1,250 7.29 39.42 5.80 10.14 0.38 1,250 1,250 1,250 
미래에셋대우우 3,930 19.12 286 7.28 27.63 7.56 9.31 0.58 242 242 55 
현대차증권 8,280 19.12 600 7.25 29.98 7.93 4.33 0.39 450 400 400 


진양홀딩스 2,355 19.12 170 7.22 61.59 4.98 9.65 0.46 150 140 140 
현대차2우B 56,900 19.12 4,100 7.21 35.35 4.32 11.20 0.45 4,100 4,100 4,100 
BNK금융지주 5,000 19.12 360 7.20 20.87 7.07 4.44 0.30 300 230 230 
제이에스코퍼레이션 6,970 19.12 500 7.17 77.40 5.26 20.39 1.01 450 300 250 
한전산업 3,180 19.12 227 7.14 42.78 21.46 6.60 1.33 169 198 218 

1 2 3 4 5 6 7 8 9 10 다음 맨뒤