Selenium은 웹 브라우저를 자동으로 제어할 수 있는 강력한 라이브러리로, 다양한 자동화 작업을 수행하는 데 유용하게 사용됩니다.
Selenium을 사용하면 브라우저에서 자동으로 웹 페이지를 열고, 특정 요소를 클릭하거나 텍스트를 입력하는 등의 작업을 파이썬 코드로 제어할 수 있습니다.
이번 글에서는 Selenium을 사용해 웹 브라우저를 자동화하는 기초적인 방법을 예제와 함께 알아보겠습니다.
1. Selenium 설치 및 ChromeDriver 설정
파이썬에서 Selenium을 사용하려면 먼저 Selenium
을 설치하고, ChromeDriver 또는 Firefox Driver와 같은 브라우저 드라이버를 다운로드해야 합니다. pip install selenium
명령어로 Selenium을 설치할 수 있습니다.
ChromeDriver 설정하기
ChromeDriver는 Chrome 브라우저를 제어하는 드라이버입니다. 사용 중인 Chrome 버전에 맞는 ChromeDriver를 ChromeDriver 다운로드 페이지에서 다운로드하고, 다운로드한 드라이버의 경로를 설정합니다.
2. 웹 페이지 열기
Selenium을 사용해 웹 브라우저를 열고, 특정 웹 페이지로 이동할 수 있습니다. Chrome 브라우저를 사용하여 Google 페이지를 열어보겠습니다.
예제: 웹 페이지 열기
from selenium import webdriver
# ChromeDriver 경로 설정
driver_path = "your/path/to/chromedriver"
driver = webdriver.Chrome(driver_path)
# 웹 페이지 열기
driver.get("https://www.google.com")
위 코드에서는 ChromeDriver를 사용하여 Chrome 브라우저를 열고, Google 페이지로 이동합니다. driver.get()
메서드를 사용해 원하는 URL로 이동할 수 있습니다.
3. 요소 찾기
웹 페이지에서 특정 요소를 찾기 위해 Selenium은 다양한 메서드를 제공합니다. find_element_by_id
, find_element_by_name
, find_element_by_class_name
등을 사용하여 HTML 요소를 쉽게 찾을 수 있습니다.
예제: Google 검색창 요소 찾기
# Google 검색창 요소 찾기
search_box = driver.find_element_by_name("q")
위 코드에서는 find_element_by_name()
메서드를 사용하여 Google 검색창의 요소(q
)를 찾습니다.
4. 텍스트 입력 및 버튼 클릭
요소를 찾은 후에는 send_keys()
메서드를 사용해 텍스트를 입력하거나, click()
메서드를 통해 버튼을 클릭할 수 있습니다.
예제: 검색어 입력 및 검색 버튼 클릭
from selenium.webdriver.common.keys import Keys
# 검색창에 "파이썬 자동화" 입력
search_box.send_keys("파이썬 자동화")
# Enter 키를 눌러 검색 실행
search_box.send_keys(Keys.RETURN)
위 코드에서는 Google 검색창에 “파이썬 자동화”라는 검색어를 입력한 후, Keys.RETURN
을 사용해 Enter 키를 눌러 검색을 실행합니다.
5. 검색 결과 가져오기
검색 결과 페이지에서 특정 요소를 선택하고, 해당 요소의 텍스트나 속성 값을 가져올 수 있습니다.
예제: 검색 결과의 제목 가져오기
# 첫 번째 검색 결과 제목 가져오기
results = driver.find_elements_by_css_selector("h3")
for result in results[:5]: # 상위 5개 결과 출력
print("검색 결과 제목:", result.text)
위 코드에서는 CSS 선택자를 사용해 검색 결과의 제목을 가져오고, 상위 5개의 제목을 출력합니다.
6. 브라우저 닫기
모든 작업이 완료되면 driver.quit()
를 사용해 브라우저를 닫습니다.
예제: 브라우저 닫기
# 브라우저 닫기
driver.quit()
위 코드에서는 Selenium을 통해 열린 모든 브라우저 창을 닫고, 드라이버 세션을 종료합니다.
7. 전체 예제
지금까지 배운 내용을 종합하여, Google에서 "파이썬 자동화"라는 검색어를 입력하고 상위 5개의 검색 결과 제목을 출력하는 코드를 작성해보겠습니다.
전체 예제 코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# ChromeDriver 경로 설정
driver_path = "your/path/to/chromedriver"
driver = webdriver.Chrome(driver_path)
# Google 웹 페이지 열기
driver.get("https://www.google.com")
# 검색창 요소 찾기 및 검색어 입력
search_box = driver.find_element_by_name("q")
search_box.send_keys("파이썬 자동화")
search_box.send_keys(Keys.RETURN)
# 검색 결과 가져오기
results = driver.find_elements_by_css_selector("h3")
for result in results[:5]: # 상위 5개 결과 출력
print("검색 결과 제목:", result.text)
# 브라우저 닫기
driver.quit()
이 예제는 Google 검색창에 검색어를 입력하고, 검색 결과에서 상위 5개의 제목을 출력한 후 브라우저를 닫는 전체 과정을 포함하고 있습니다.
8. Selenium 사용 시 주의사항
- 웹 사이트의 로딩 시간에 따라 적절한
time.sleep()
또는 Selenium의WebDriverWait
을 사용해 대기 시간을 설정하는 것이 좋습니다. - 웹 페이지의 구조가 변경되면 요소를 찾는 코드가 동작하지 않을 수 있으므로 코드 업데이트가 필요합니다.
- 자동화 작업은 과도하게 사용하지 않도록 주의하며, 각 사이트의 이용 약관을 준수합니다.
마무리
이번 글에서는 파이썬 Selenium을 사용해 웹 브라우저를 자동화하는 기초적인 방법을 살펴보았습니다.
Selenium을 통해 다양한 자동화 작업을 구현할 수 있으며, 이를 활용하면 웹 스크래핑, 반복 작업 자동화 등에 효율적으로 활용할 수 있습니다.
실습을 통해 Selenium의 다양한 기능을 익히고 나만의 자동화 프로그램을 만들어보세요!