Web Crawling/Selenium

Selenium 이란 ?

js-kkk 2025. 2. 24. 13:43

3. Selenium

3-1. Selenium 개요

3-1-1. Selenium 이란

💡Selenium은 브라우저를 자동화하는 도구로, 웹 페이지의 JavaScript 렌더링까지 처리할 수 있다. 브라우저 드라이버를 사용하여 실제 브라우저(예: Chrome, Firefox)를 구동하여 웹 페이지를 로드하고, 스크립트를 통해 브라우저 내에서 클릭, 입력 등의 동작을 자동화한다. JavaScript 실행을 통해 생성된 콘텐츠도 로드하여 처리할 수 있다. 따라서 웹 페이지의 인터랙션과 동적 데이터를 크롤링하는 데 유용하다.

3-1-2. Selenium 장단점

  • 장점
    • JavaScript로 생성된 콘텐츠를 포함하여 모든 웹 요소에 접근 가능하다.
    • 버튼 클릭, 입력 상자 채우기 등 브라우저 상호작용이 가능하다.
  • 단점
    • 속도가 느리고 시스템 자원을 많이 사용한다.
    • 설치 및 초기 설정이 필요하다.

3-2. Selenium 주요 함수 및 메서드

  • Selenium의 주요 내용은 Documents에서 자세하게 확인할 수 있다.

3-2-1. 브라우저 제어 관련

  1. webdriver.Chrome(executable_path): Chrome 브라우저 객체를 생성한다.
  2. driver.get(url): 특정 URL로 이동한다.
  3. driver.current_url: 현재 브라우저의 URL을 반환한다.
  4. driver.refresh(): 현재 페이지를 새로고침한다.
  5. driver.back(): 이전 페이지로 이동한다.
  6. driver.forward(): 브라우저를 앞으로 이동시킨다.
  7. driver.maximize_window() / driver.minimize_window(): 브라우저 창을 최대화/최소화한다.
  8. driver.execute_script("window.scrollTo(x, y)"): 특정 위치로 화면을 스크롤한다.
  9. driver.switch_to.alert: 현재 브라우저에서 열려 있는 경고(alert) 창으로 전환한다.
  10. alert.accept()/alert.dismiss(): 경고창의 확인/취소 버튼을 누른다.
  11. driver.quit(): 모든 탭과 브라우저를 종료한다. (사용 후 자원 해제를 위해 반드시 호출해야 한다.)
  12. driver.close(): 현재 활성화된 브라우저 탭만 닫는다.

3-2-2. 요소 탐색 관련

  1. driver.find_element(By.ID, value): 특정 ID로 요소를 찾는다.
  2. driver.find_elements(By.CLASS_NAME, value): 특정 클래스 이름으로 모든 요소를 리스트로 반환한다.
  3. driver.find_element(By.TAG_NAME, value): 특정 태그 이름으로 요소를 찾는다.
  4. driver.find_element(By.LINK_TEXT, value): 링크 텍스트로 요소를 찾는다.
  5. driver.find_elements(By.CSS_SELECTOR, value): CSS 선택자로 요소들을 찾는다.

3-2-3. 상호작용 및 입력 관련

  1. element.click(): 특정 요소를 클릭한다.
  2. element.send_keys(keys): 입력 상자에 텍스트를 입력한다.
  3. element.clear(): 입력 상자 내용을 지운다.
  4. element.submit(): 폼을 제출한다.
  5. element.is_displayed(): 요소가 화면에 표시되는지 확인한다.

3-2-4. JavaScript 및 동적 콘텐츠 제어

  1. driver.execute_script(script): JavaScript를 실행한다.
  2. driver.execute_async_script(script): 비동기 JavaScript를 실행한다.
  3. driver.switch_to.frame(frame_reference): 특정 iframe으로 이동한다.
  4. driver.switch_to.default_content(): iframe에서 기본 컨텐츠로 돌아온다.

'Web Crawling > Selenium' 카테고리의 다른 글

동적 웹 페이지 스크래핑 - Selenium 활용  (0) 2025.02.24