본문 바로가기
카테고리 없음

한국에서 Selenium 활용법, 자동화 실무 예제 모음

by 가치정보인 2025. 3. 22.
반응형

Selenium은 웹 브라우저를 자동으로 조작할 수 있도록 도와주는 강력한 라이브러리로, 웹 크롤링과 자동화 작업에 많이 활용됩니다. 특히 한국에서는 반복적인 업무 자동화, 데이터 수집, 온라인 예약, 쇼핑몰 크롤링, 공공 데이터 수집 등에 Selenium이 자주 사용됩니다. 이 글에서는 한국 환경에서 Selenium을 활용하는 방법과 실무에서 유용한 예제들을 소개합니다.

1. Selenium 환경 설정 및 기본 사용법

Selenium이란?

Selenium은 웹 브라우저를 제어하는 오픈 소스 도구로, Python을 포함한 다양한 프로그래밍 언어에서 사용할 수 있습니다. 주로 웹 크롤링(스크래핑)이나 웹 애플리케이션 테스트 자동화에 활용됩니다.

Selenium 설치하기

pip install selenium

또한, Selenium이 웹 브라우저를 제어하기 위해서는 웹드라이버(WebDriver)가 필요합니다. 크롬 브라우저를 사용할 경우, 크롬 드라이버를 다운로드해야 합니다.

- 크롬 드라이버 다운로드: ChromeDriver 공식 사이트

Selenium을 이용한 간단한 웹페이지 열기


from selenium import webdriver

driver = webdriver.Chrome()  # 크롬 브라우저 실행
driver.get("https://www.interpark.com/")  # 인터파크 메인 페이지 열기

2. 예매 사이트에서 공연 정보 가져오기

인터파크 티켓에서 인기 공연 목록 크롤링


from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://tickets.interpark.com/")  # 인터파크 티켓 메인 페이지

time.sleep(3)  # 페이지 로딩 대기

shows = driver.find_elements(By.CLASS_NAME, "bestRankContent")

for idx, show in enumerate(shows[:5]):  # 상위 5개 공연만 출력
    title = show.find_element(By.CLASS_NAME, "prdTitle").text
    print(f"{idx+1}. {title}")

driver.quit()

3. 공공 데이터 포털에서 데이터 자동 다운로드

한국은행 경제통계시스템에서 엑셀 데이터 다운로드하기


from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://ecos.bok.or.kr/")  # 한국은행 경제통계시스템

time.sleep(3)  # 페이지 로딩 대기

search_box = driver.find_element(By.ID, "headerSearchInput")
search_box.send_keys("소비자물가지수")

search_button = driver.find_element(By.ID, "headerSearchBtn")
search_button.click()

time.sleep(3)

first_result = driver.find_element(By.CSS_SELECTOR, ".tableF .first a")
first_result.click()

time.sleep(3)

download_button = driver.find_element(By.CSS_SELECTOR, ".btnDownloadExcel")
download_button.click()

print("엑셀 파일이 다운로드되었습니다.")

driver.quit()

4. 항공권 예약 사이트에서 최저가 항공권 찾기

대한항공 사이트에서 서울-제주 항공권 조회


from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://www.koreanair.com/")  # 대한항공 홈페이지

time.sleep(3)  # 페이지 로딩 대기

departure_input = driver.find_element(By.ID, "input-de
반응형