본문 바로가기
JAVA

JAVA 웹 크롤링(Web crawling)

by YoungJu 2021. 4. 24.
반응형
SMALL

준비

우선 java러 웹 크롤링을 하기 위해서는 jsoup이라는 라이브러리가 필요하다.

물론 jsoup이 없어도 크롤링을 할 수 있지만 라이브러리를 사용하는 것이 더 편리하기에 라이브러리를 

사용하여 JAVA 웹 크롤링을 구현해 보겠다.

 

jsoup Download and install

jsoup을 다운로드하기 위해 jsoup.org에서 jsoup을 찾아서 다운로드를 한다.

jsoup.org/download

 

Download and install jsoup

Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.13.1. What's new See the 1.13.1 release announcement for the latest changes, or the changelog for the full history. Previous releases of jso

jsoup.org

본 블로거는 core library를 다운로드하여 IntelliJ에 파일을 추가하는 방법으로 진행하였다.

 

InjelliJ에 jsoup 추가하기

jsoup을 다운로드하였으면 이제  IntelliJ에 라이브러리를 추가해 보자.

 

www.jetbrains.com/help/idea/library.html

 

Libraries | IntelliJ IDEA

 

www.jetbrains.com

위 사이트에서 라이브러리 추가 방법이 자세히 나와 있다. 참고하면 좋을 듯하다.

우리는 core library를 다운로드하였으니 프로젝트 구조 창의 글로벌 라이브러리에서 +를 누르고 

From Moven...으로 라이브러리를 추가한다.

 



JAVA web crwaling

이제 준비를 마쳤으니 본격적으로 웹 크롤링을 해 보자. 

이번에 크롤링할 사이트는 '대전 복합터미널'이다. 

www.djbusterminal.co.kr/

 

대전복합터미널

TODAY : 214 TOTAL : 7426170

www.djbusterminal.co.kr

 

 

package com.company;
import java.lang.String;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;


public class Main {

    public static void main(String[] args) throws IOException {
        String URL = "http://www.djbusterminal.co.kr/";
        Document doc = Jsoup.connect(URL).get();

        System.out.println(doc.text());  //text 출력
        System.out.println(doc.html());  //html 출력

    }

}

 

실행결과

HTML을 출력한다.

 

 

 

사이트에서 특정 부분 가져오기

이번에는 사이트에서 특정 부분만을 출력해 볼 것이다.

우리는 대전 복합터미널 사이트에서 공지사항들의 제목을 출력하는 프로그램을 작성해 보자.

 

HTML에서 Elements를 이용하여 크롤링을 진행할 것이다.

대전복합터미널 공지사항 탭의 HTML 중 공지사항의 제목 부분

 

공지사항에서 제목을 나타내는 부분의 HTML 코드이다. 

제목이 적혀있는 a태그를 감싸고 있는 td 태그의 클래스를 이용해서 select를 하면 제목만을 크롤링할 수 있다..

 

package com.company;
import java.lang.String;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;



public class Main {

    public static void main(String[] args) throws IOException {
        String URL = "http://www.djbusterminal.co.kr/?module=Board&action=SiteBoard&iBrdNo=6&sMode=SELECT_FORM";
        Document doc = Jsoup.connect(URL).get();

        Elements elem = doc.select("td[class=\" pl\"]");
        //Elements elem = doc.select("td.pl");

        for(Element e: elem.select("a")) {
            System.out.println(e.text());
        }

    }

}

doc.select를 이용하여 td태그의 클래스를 탐색하였다.

위 코드를 실행시켜 보면 아래 사진처럼 제목들이 출력된다.

 

제목 출력

 

 

반응형

'JAVA' 카테고리의 다른 글

[JAVA] 생성자 오버로딩 with this  (0) 2023.01.29
[JAVA] JAVA의 기본형 타입  (0) 2022.09.14

댓글