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

파이썬을 이용한 업무 자동화 (1편) : Selenium 웹 자동화

by Rachel 2024. 8. 17.
반응형

Selenium이란 브라우저를 자동화하는 도입니다. Selenium을 사용하면 클릭이나 스크롤, 텍스트 입력 같은 사용자의 동작을 코드로 제어할 수 있습니다. 코드로 작성한 동작들이 브라우저에서 자동 실행되는 것입니다.

Selenium은 주로 웹사이트 테스트 할 때 사용합니다. 테스트하고 싶은 사용자의 동작을 코드로 기록해 두면 개발하면서 자동으로 실행시키면서 버그가 있는지 확인할 수 있습니다. Selenium을 사용하면 로그인, 검색, 버튼 클릭 등 자동화 할 수 있어서 웹사이트를 테스트하거나 웹을 다방면으로 운용하는데 도움이 됩니다.

 

파이썬을-이용한-업무-자동화-1편-Selenium-웹-자동화
파이썬을 이용한 업무 자동화 (1편) : Selenium 웹 자동화

 

1.  Selenium 시작 전에 알아야 할 지식 

Selenium을 실행하기 위해서 사전에 알아둬야 할 지식이 있습니다. 우선 파이썬 기초 문법과 자료형에 대한 이해가 필요합니다. 또한 반복문 중에서도 for 반복문을 알아야 합니다. 파이썬 모듈과, time 모듈에서 sleep() 메소드를 활용하는 방법도 먼저 봐야합니다. 이 부분까지는 파이썬에 대한 기초 문법을 이해하는 과정이었습니다. 웹 자동화 지식도 필요합니다. 우선 웹 스크래핑의 개념, HTML과 CSS의 기본 지식, CSS의 셀렉터 문법, Beautiful Soup 사용법도 알아야 합니다. 또한 Selenium 실행 전에 라이브러리를 미리 설치해줘야 합니다.

이번 실습에서는 Selenium 4.21.0 버전, beautifulsoup4 4.12.3 버전, requests 2.23.3 버전, openpyxl 3.1.3 버전을 기본으로 두고 개발을 진행했습니다. 라이브러리를 설치하기 위해서는 터미널에 pip 문법을 활용하여 작성하면 됩니다. macOS의 경우, pip 대신 pip3를 사용해야 할 경우도 있습니다. 

pip install selenium beautifulsoup4 requests openpyxl

 

설치과정을 알고 싶은 분은 하단 튜토리얼 링크를 통해 라이브러리를 설치해보시길 바랍니다. 

커맨드 라인으로 외부 패키지 설치하기 (Windows)

커맨드 라인으로 외부 패키지 설치하기 (MacOS)

 

2. Selenium 준비하기 

Selenium을 실행시키기 위해서는 Selenium과 Web Driver을 준비해야합니다. Web Driver는 웹 브라우저를 운전하는 것을 의미합니다. Web Driver는 브라우저마다 다 다릅니다. 저는 구글 크롬 브라우저를 기준으로 Web Driver 사용법을 작성하겠습니다.

바탕화면에 폴더를 하나 만들고 VScode를 키고 폴더를 열겠습니다. Selenium는 외부 라이브러리 입니다. 터미널 창에서 Selenium을 미리 다운로드 해주시기 바랍니다. 내가 만든 폴더 안에 main.py 파일을 생성해 줍니다. 그리고 라이브러리 임포트, 크롬 드라이버 생성, 사이트 접속하는 코드를 작성해 줍니다. 이 코드는 크롬 드라이버를 생성하고, 구글 사이트에 접속하는 코드입니다. 

이 코드를 실행하면 구글 크롬 브라우저가 열리면서 바로 구글 사이트로 연결됩니다. 마지막으로 드라이버를 사용했다면 드라이버를 종료해주는 것이 좋습니다. 코드 마지막 줄에 driver.quit()을 입력하면 됩니다. 참고로 드라이버 종료 전에 sleep 메소드로 5초를 기다리는 이유는 웹 브라우저가 너무 빠르게 닫혀서 확인이 어렵기 때문입니다. 참고로 동작을 확인할 필요가 없다면 sleep 메소드는 생략하셔도 됩니다. 

# 라이브러리 임포트
from time import sleep

from selenium import webdriver

# 크롬 드라이버 생성
driver = webdriver.Chrome()

# 사이트 접속하기
driver.get('https://www.google.co.kr')

# 5초 기다리기
sleep(5)

 

 

 

※ 해당 글은 코드잇(codeit)의 [Selenium 웹 자동화] 강의 내용에서 참고하여 작성하였습니다.

반응형