Selenium을 이용한 웹 자동화 알아보기

Selenium은 웹 애플리케이션을 자동화하기 위한 강력한 도구입니다. 이를 이용하면 웹 페이지를 테스트하거나, 데이터를 스크래핑하는 등 다양한 목적으로 사용할 수 있습니다. 아래에서는 Selenium을 이용한 웹 자동화를 위한 기본적인 사용법과 주요 기능들을 알아보겠습니다.

Selenium 설치하기

Selenium을 사용하기 위해서는 먼저 Selenium WebDriver를 설치해야 합니다. WebDriver는 Selenium의 핵심 엔진으로, 브라우저를 제어하여 자동화된 작업을 수행합니다.

WebDriver는 브라우저마다 다른 버전이 존재하기 때문에, 사용하려는 브라우저에 맞는 WebDriver를 다운로드 받아 설치해야 합니다. WebDriver의 다운로드와 설치 방법은 Selenium 공식 홈페이지에서 확인할 수 있습니다.

👉 셀레니움 공식 홈페이지

웹 드라이버 설정하기

WebDriver를 설치한 후, Python에서 Selenium을 사용하기 위해서는 webdriver 모듈을 import 해야 합니다. 또한 사용할 브라우저의 웹 드라이버를 지정해야 합니다. 다음은 Chrome 브라우저를 사용할 경우, 웹 드라이버를 설정하는 예제 코드입니다.

from selenium import webdriver

# Chrome 웹 드라이버 경로 설정
chrome_driver_path = "/path/to/chromedriver"

# Chrome 웹 드라이버 생성
driver = webdriver.Chrome(executable_path=chrome_driver_path)

웹 페이지 열기

WebDriver를 생성한 후, get() 메서드를 이용하여 웹 페이지를 열 수 있습니다.

# 구글 메인 페이지 열기
driver.get("https://www.google.com")

웹 페이지 조작하기

Selenium을 이용하여 웹 페이지를 조작하는 방법은 여러 가지가 있습니다. 예를 들어, 텍스트 입력, 버튼 클릭, 링크 클릭 등이 있습니다. 다음은 Google 검색창에 검색어를 입력하고 검색 버튼을 클릭하는 예제 코드입니다.

# 검색어 입력
search_box = driver.find_element_by_name("q")
search_box.send_keys("Python")

# 검색 버튼 클릭
search_button = driver.find_element_by_name("btnK")
search_button.click()

웹 페이지 스크래핑하기

Selenium을 이용하여 웹 페이지를 스크래핑하는 방법도 간단합니다. find_element_by_xpath()나 find_element_by_css_selector() 메서드를 이용하여 원하는 요소를 선택한 후, 해당 요소의 텍스트를 가져올 수 있습니다.

다음은 Google 검색 결과 페이지에서 Python으로 Selenium을 이용하여 웹 페이지를 스크래핑하는 예제 코드입니다.

# 검색 결과 페이지에서 검색 결과 제목 가져오기
search_results = driver.find_elements_by_css_selector("h3")
for result in search_results:
    print(result.text)

웹 페이지 대기하기

Selenium을 이용하여 웹 페이지를 자동화할 때, 가장 중요한 점은 웹 페이지가 로드되기를 기다리는 것입니다. 페이지가 로드되지 않은 상태에서 요소를 찾거나 조작하려고 하면, NoSuchElement나 ElementNotInteractable 등의 예외가 발생할 수 있습니다.

이를 방지하기 위해서는 WebDriverWait를 이용하여 웹 페이지가 로드될 때까지 대기하는 코드를 작성해야 합니다. 다음은 Google 검색 결과 페이지에서 검색 결과가 로드될 때까지 대기하는 예제 코드입니다.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 검색 결과가 로드될 때까지 대기
wait = WebDriverWait(driver, 10)
search_results = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "h3")))

# 검색 결과 출력
for result in search_results:
    print(result.text)

브라우저 닫기

자동화 작업을 모두 마치면, WebDriver를 닫아주어야 합니다. 다음은 WebDriver를 닫는 예제 코드입니다.

# WebDriver 닫기
driver.quit()

마치며

Selenium을 이용하여 웹 자동화를 수행하는 방법과 주요 기능들에 대해 알아보았습니다. Selenium은 웹 테스트나 데이터 스크래핑 등 다양한 분야에서 사용될 수 있으며, 효율적인 자동화 작업을 위해서는 웹 드라이버 설정, 웹 페이지 열기, 웹 페이지 조작, 웹 페이지 스크래핑, 웹 페이지 대기, 브라우저 닫기 등의 기본적인 사용법을 숙지해야 합니다.

error: Content is protected !!