실무에 적용되는 Selenium 활용 예시
Selenium은 특히 반복적인 웹 작업
을 자동으로 처리하거나, 웹 애플리케이션을 테스트
하는 데 자주 사용됩니다.
이번 수업에서는 Selenium을 활용해 실무에서 유용하게 쓸 수 있는 몇 가지 코드 예시를 살펴보겠습니다.
특정 조건에 따라 웹사이트 업데이트 모니터링하기
Selenium을 사용하여 특정 웹 페이지의 콘텐츠가 업데이트되었는지 모니터링하고, 변화가 있을 때 알림을 받는 작업을 자동화할 수 있습니다.
예를 들어 특정 상품의 재고 상태를 모니터링하거나, 게시판에 새로운 글이 올라왔는지 확인할 수 있습니다.
웹사이트 업데이트 모니터링 예시
# 실제 동작하는 코드가 아닌 예시 코드입니다
from selenium import webdriver
from selenium.webdriver.common.by import By
# 웹 페이지 로드 대기를 위한 time 모듈
import time
# Chrome 웹 드라이버 생성
driver = webdriver.Chrome()
# 모니터링할 웹페이지로 이동 (예: 상품 페이지)
driver.get("https://www.example.com/product-page")
# 초기 상태에서 확인할 요소 (예: 재고 상태)
initial_status = driver.find_element(By.ID, "stock-status").text
while True:
# 페이지 새로고침
driver.refresh()
# 현재 상태 확인
current_status = driver.find_element(By.ID, "stock-status").text
# 상태가 변경되었는지 확인
if current_status != initial_status:
print(f"상태가 변경되었습니다: {current_status}")
break
# 일정 시간 대기 후 다시 확인 (예: 60초 대기)
time.sleep(60)
# 브라우저 종료
driver.quit()
위 코드 예시는 웹 페이지의 특정 요소(예: 상품 재고 상태)를 주기적으로 확인하고, 변경이 발생하면 알림을 출력합니다.
여러 페이지를 순차적으로 크롤링하기
때로는 여러 페이지에 걸쳐 있는 데이터를 수집해야 할 때가 있습니다.
Selenium을 사용하면 페이지를 순차적으로 이동하면서 필요한 데이터를 쉽게 가져올 수 있습니다.
여러 페이지 크롤링 예시
# 실제 동작하는 코드가 아닌 예시 코드입니다
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# Chrome 웹 드라이버 생성
driver = webdriver.Chrome()
# 초기 페이지 설정 (예: 첫 번째 페이지)
url = "https://www.example.com/products?page=1"
# 페이지 이동
driver.get(url)
while True:
# 페이지에서 원하는 데이터 추출
products = driver.find_elements(By.CSS_SELECTOR, ".product-title")
# 데이터 출력
for product in products:
print(product.text)
# 다음 페이지 버튼 찾기
try:
# 다음 페이지 버튼
next_button = driver.find_element(By.CSS_SELECTOR, ".next-page")
# 다음 페이지로 이동
next_button.click()
# 페이지 로딩 대기
driver.implicitly_wait(10)
except:
# 더 이상 다음 페이지가 없는 경우 루프 종료
print("모든 페이지를 크롤링했습니다.")
break
# 브라우저 종료
driver.quit()
이 코드에서는 while 루프를 사용해 페이지를 이동하며 데이터를 수집합니다.
여러 페이지에 걸쳐 있는 정보를 한 번에 가져와야 하는 상황에서 매우 유용합니다.
이렇게 Selenium을 사용하면 반복적인 웹 작업을 자동화하거나, 대규모 데이터를 효율적으로 수집할 수 있습니다.
실무에 Selenium을 적극 활용해 업무 효율을 높여 보세요 :)
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!