Java/실험실

Selenium을 이용한 간단 크롤링 하기 (네이버 실행)

소금토스트 2024. 11. 13. 23:29
728x90
반응형
SMALL
반응형
SMALL

준비물
Windows
ESR firefox 78.8.0
GeckoDriver 0.29.0
java 17
IntelliJ

셀레니움으로 해커같이 웹브라우저를 자동으로 맘대로 조작할수있고, 필요한 자료가있으면 
자동으로 추출해서 리스트화까지 가능한 크롤링기능의 간단한 코드를 작성하려고한다.

셀레니움의 특징은 브라우저가 실제로 작동하면서 동작하기때문에 리소스를 많이 먹을수있지만,
뭔가 화면이 자동으로 휙휙바뀌는게 뭔가 개발자같고 그렇다.

설치할것은 ESR firefox 78.8.0, GeckoDriver 0.29.0 이다
파이어폭스앞에 ESR은 업데이트를 허용하지않는 버전이라고 생각하면된다
크롤링을 배포해놧는데 스스로 최신 업데이트해버리면 버전이 맞지 않게되어 동작이 안될수 있기때문에
버전이 고정된 ESR을 사용한다.
GeckoDriver는 셀레니움을 사용해  Firefox 브라우저를 자동화할때 필요한 드라이버이다.
Firefox와 GeckoDriver는 서로 동작하는 버전이 있기때문에 잘맞춰서 설치해야한다.

많이 사용하는 크롬을 놔두고 파이어폭스를 사용하는 이유는 파이어폭스를 많이 사용하지않기 때문이다.
많이쓰는 브라우저는 최신버전이 필요할수있기도하니까 최대한 변수를 없애기 위해서 선택했다.

우선 디렉토리구조는 아래처럼 세팅했다.
geckodriver.exe를 프로젝트 디렉토리안에 세팅했다.

 가장 간단한 네이버 켜기 코드를 작성했다.

SimpleCrawler.java

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SimpleCrawler {
    public static void main(String[] args) {
        // 1. GeckoDriver 경로 설정
        System.setProperty("webdriver.gecko.driver", "C:\\Users\\User\\Desktop\\Selenium-firefox-test\\geckodriver.exe"); // geckodriver 경로 설정

        // 2. Firefox 드라이버 초기화
        WebDriver driver = new FirefoxDriver();

        try {
            // 3. 원하는 웹페이지로 이동
            driver.get("https://naver.com");

            // 4. 웹페이지 제목 가져오기
            String pageTitle = driver.getTitle();
            System.out.println("페이지 제목: " + pageTitle);
        } finally {
            // 5. 브라우저 종료
            driver.quit();
        }
    }
}

 코드는 이정도로 간단하다.
위코드를 실행하면 파이어폭스가 켜지고, 네이버로 이동한후, 꺼지는 순서대로 작동한다.
그런데 빨리 작동해서 작동된건지 알수가없다.

그래서 5번 브라우저 종료 부분을 주석처리한다.
// driver.quit();
그리고 다시시작하면 네이버가 켜진모습을 볼수있다.

이제 이 셀레니움을 활용해서 많은것들을 할수있다.
아이디와 비밀번호를 자동으로 입력하고  로그인버튼을 자동으로 클릭하는것도 가능하다.

끝.

728x90
반응형
LIST

'Java > 실험실' 카테고리의 다른 글

Selenium을 이용한 API 비용 없이 AI 챗봇 사용하기  (8) 2024.11.14