요즘 웹 자동화가 필요할 때가 많다. 웹사이트에서 특정 정보를 자동으로 수집하거나, 반복적인 클릭 작업을 줄이고 싶을 때 셀레니움을 사용하면 매우 유용하다. 초보 개발자라도 쉽게 따라 할 수 있도록 파이썬과 셀레니움을 활용해 간단한 웹 자동화 스크립트를 만들어 보겠다.
셀레니움과 파이썬 환경 설정 및 기본 개념 이해하기
셀레니움(Selenium)은 웹 브라우저를 자동화할 수 있는 강력한 도구다. 주로 웹 테스트 자동화에 사용되지만, 크롤링이나 반복 작업을 줄이는 데도 활용할 수 있다. 셀레니움을 사용하려면 몇 가지 필수적인 환경을 먼저 설정해야 한다.
먼저, 파이썬이 설치되어 있어야 한다. 파이썬이 없다면 공식 사이트에서 다운로드하고 설치하면 된다. 이후 셀레니움 라이브러리를 설치해야 한다. 설치는 아래 명령어를 실행하면 간단하게 완료된다.
pip install selenium
또한, 웹 드라이버가 필요하다. 셀레니움은 브라우저를 직접 조작하기 위해 각 브라우저에 맞는 드라이버가 필요하다. 대표적으로 크롬을 사용할 경우 ChromeDriver를 다운로드하고, 실행할 파이썬 스크립트와 같은 폴더에 두는 것이 편리하다.
드라이버를 준비한 후에는 간단한 테스트를 해볼 수 있다. 아래 코드처럼 실행하면 크롬 브라우저가 자동으로 열리고, 구글 홈페이지를 방문하는 것을 확인할 수 있다.
from selenium import webdriver
# ChromeDriver 실행
driver = webdriver.Chrome()
# 구글 홈페이지 접속
driver.get("https://www.google.com")
위 코드를 실행하면 브라우저가 자동으로 열리고, 구글 홈페이지로 이동하는 것을 확인할 수 있다. 정상적으로 실행된다면, 셀레니움 환경 설정이 완료된 것이다.
웹 자동화 스크립트 작성 및 간단한 실습하기
이제 실제로 웹 자동화 스크립트를 작성해 보겠다. 가장 기본적인 작업으로 특정 검색어를 입력하고 검색 버튼을 클릭하는 자동화 스크립트를 만들어보겠다.
예제로 네이버에서 "파이썬 셀레니움"을 검색하는 자동화 코드를 작성해보겠다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# ChromeDriver 실행
driver = webdriver.Chrome()
# 네이버 홈페이지 접속
driver.get("https://www.naver.com")
# 검색창 요소 찾기
search_box = driver.find_element(By.NAME, "query")
# 검색어 입력
search_box.send_keys("파이썬 셀레니움")
search_box.send_keys(Keys.RETURN)
# 몇 초 대기 후 종료
time.sleep(5)
driver.quit()
이 코드의 주요 동작을 설명하면 다음과 같다.
-
webdriver.Chrome()
을 사용해 크롬 브라우저를 실행한다. -
driver.get("https://www.naver.com")
을 사용해 네이버 홈페이지로 이동한다. -
find_element(By.NAME, "query")
를 사용해 검색창을 찾는다. -
send_keys()
를 사용해 "파이썬 셀레니움"이라는 검색어를 입력한다. -
Keys.RETURN
을 입력해 검색을 실행한다. -
time.sleep(5)
를 사용해 5초간 결과 페이지를 유지한 후 브라우저를 종료한다.
이처럼 간단한 코드만으로도 특정 사이트에서 자동으로 검색을 수행하는 기능을 구현할 수 있다.
웹사이트에 따라 검색창의 HTML 요소가 다를 수 있으므로, find_element
를 사용할 때는 웹사이트의 HTML 구조를 분석하고 적절한 선택자를 사용해야 한다. 예를 들어, By.ID
, By.CLASS_NAME
, By.CSS_SELECTOR
등의 다양한 선택 방법이 있다.
만약 로그인 기능을 자동화하고 싶다면, 아이디와 비밀번호 입력 후 로그인 버튼을 클릭하는 방식으로 확장할 수도 있다. 기본 개념을 익혔다면 로그인 자동화, 게시글 작성, 데이터 크롤링 등 더 복잡한 작업도 도전해볼 수 있다.
이렇게 간단한 웹 자동화 스크립트를 직접 만들어 보니 셀레니움이 얼마나 강력한 도구인지 감이 올 것이다. 앞으로 반복적인 작업을 줄이고, 원하는 정보를 자동으로 처리할 때 유용하게 활용해보자.