Crawling: Selenium

Ohback·2025년 1월 3일

오늘은 동적페이지를 크롤링 해오는 Selenium에 대해 정리 해보았다.

1. Selenium 이란?

Selenium은 WebDriver를 통해 브라우저를 제어하여 웹 페이지와 상호작용하는 자동화 도구로 페이지를 열고, 버튼 클릭, 텍스트 입력, 링크를 따라가는 등의 작업을 자동화할 수 있어 동적 웹 페이지에서 자주 사용되며, JavaScript로 렌더링된 콘텐츠를 포함하는 웹 페이지의 데이터도 처리할 수 있다.

1-1. WebDriver

Webdriver는 Selenium이 브라우저를 제어할 수 있도록 연결 역할을 하는 필수 컴포넌트로 브라우저마다 다른 Driver를 다운 받아야 하는데 나는 수업시간에 사용한 ChromeDriver를 이용했다.

1-2. ChromeDriver 작동 원리

크롬 드라이버는 Chrome 브라우저의 자동화 인터페이스(DevTools Protocol)를 사용하여 Selenium 명령을 실행한다.

  • Selenium 명령 전달:
    사용자가 Python, Java, C# 등의 언어로 작성한 Selenium 코드는 WebDriver 프로토콜 명령으로 변환
    예: driver.get("https://example.com")는 브라우저에 "이 URL로 이동" 명령을 전달.

  • ChromeDriver와 브라우저 간의 통신:
    ChromeDriver가 명령을 Chrome 브라우저로 전달
    -> DevTools Protocol을 통해 명령 처리
    -> 결과를 ChromeDriver에 반환

  • 결과 반환:
    ChromeDriver는 처리 결과를 Selenium으로 반환
    -> Selenium은 이를 사용자가 사용할 수 있도록 Python 등으로 재전달

1-3. Selenium에서 HTML 요소 찾기

Selenium에서 HTML 요소를 찾는 방법은 여러 가지가 있는데 ID, 클래스 이름, XPath, CSS 선택자, 링크 텍스트 등 다양한 방식으로 요소를 찾을 수 있고, 이를 기반으로 상호작용을 하거나 데이터를 추출할 수 있다. 요소 값은 아래와 같이 개발자 도구를 열어 가져오려는 요소 위에서 마우스 우클릭으로 쉽게 복사해 올 수 있다.

profile
기록은 기억을 지배한다.

0개의 댓글