오늘은 동적페이지를 크롤링 해오는 Selenium에 대해 정리 해보았다.
Selenium은 WebDriver를 통해 브라우저를 제어하여 웹 페이지와 상호작용하는 자동화 도구로 페이지를 열고, 버튼 클릭, 텍스트 입력, 링크를 따라가는 등의 작업을 자동화할 수 있어 동적 웹 페이지에서 자주 사용되며, JavaScript로 렌더링된 콘텐츠를 포함하는 웹 페이지의 데이터도 처리할 수 있다.
Webdriver는 Selenium이 브라우저를 제어할 수 있도록 연결 역할을 하는 필수 컴포넌트로 브라우저마다 다른 Driver를 다운 받아야 하는데 나는 수업시간에 사용한 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 등으로 재전달
Selenium에서 HTML 요소를 찾는 방법은 여러 가지가 있는데 ID, 클래스 이름, XPath, CSS 선택자, 링크 텍스트 등 다양한 방식으로 요소를 찾을 수 있고, 이를 기반으로 상호작용을 하거나 데이터를 추출할 수 있다. 요소 값은 아래와 같이 개발자 도구를 열어 가져오려는 요소 위에서 마우스 우클릭으로 쉽게 복사해 올 수 있다.
