Blog

  • 파이썬 최신 버전 셀레니움(Selenium) 사용법과 활용 방법

    파이썬 최신 버전 셀레니움(Selenium) 사용법과 활용 방법

    Selenium Web Automation

    웹 자동화와 크롤링(스크래핑)을 이야기할 때 절대 빠질 수 없는 도구가 있습니다.
    바로 Selenium(셀레니움) 입니다.

    특히 파이썬(Python)과 함께 사용하면 누구나 손쉽게 브라우저를 자동화하고, 반복적인 웹 작업을 빠르게 처리할 수 있습니다.
    오늘은 **파이썬 최신 버전(2024년 기준)**을 기준으로, 셀레니움의 정의와 기본 사용법, 그리고 다양한 활용 방법까지 자세히 소개해드리겠습니다.


    셀레니움이란 무엇인가?

    셀레니움(Selenium) 은 원래 웹 애플리케이션을 테스트하기 위해 만들어진 오픈소스 프레임워크입니다.
    하지만 지금은 테스트를 넘어서, 웹 브라우저를 사람처럼 자동으로 조작하는 데 가장 널리 사용되는 도구가 되었죠.

    간단히 말하면,

    • 웹사이트 접속
    • 버튼 클릭
    • 로그인 자동화
    • 글쓰기, 댓글 달기
    • 데이터 수집
      같은 작업을 프로그래밍 코드로 대신 할 수 있게 해주는 도구입니다.

    특히 동적인 웹사이트(스크롤해야 더 많은 데이터가 나오거나, 버튼을 눌러야 내용이 열리는 페이지)에서도 사람처럼 상호작용할 수 있다는 점이 가장 큰 장점입니다.


    파이썬 최신 버전에서 셀레니움 설치하기

    먼저, 파이썬 최신 버전(예: Python 3.12)에서 셀레니움을 사용하려면 최신 셀레니움 패키지를 설치해야 합니다.

    bash복사편집pip install selenium
    

    2024년 이후 버전에서는 Selenium 4 이상이 기본입니다.
    이전 버전과는 약간 달라진 부분이 있으니 주의해야 합니다.

    특히, 드라이버(크롬드라이버 등) 관리를 자동화하는 기능이 추가되어, 더 간편하게 사용할 수 있습니다.


    기본적인 셀레니움 사용법

    1. 웹드라이버 세팅

    기존에는 직접 크롬드라이버를 다운로드해서 경로를 지정해야 했습니다.
    하지만 최신 셀레니움은 Selenium Manager가 드라이버를 자동으로 다운로드하고 설정해줍니다.

    예시:

    python복사편집from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    # Chrome 브라우저 자동 실행
    driver = webdriver.Chrome()
    
    # 원하는 웹페이지 열기
    driver.get("https://www.google.com")
    
    # 페이지 제목 출력
    print(driver.title)
    
    # 브라우저 닫기
    driver.quit()
    

    ※ 주의:
    처음 실행할 때는 인터넷 연결이 필요합니다.
    Selenium Manager가 필요한 드라이버를 자동으로 다운로드합니다.


    2. 요소 찾기 (Element 찾기)

    페이지 안에서 특정 버튼, 입력창, 텍스트 등을 찾을 때는 By 모듈을 사용합니다.

    python복사편집search_box = driver.find_element(By.NAME, "q")  # 구글 검색창
    search_box.send_keys("Selenium Python")          # 검색어 입력
    search_box.submit()                              # 검색 실행
    

    자주 사용하는 검색 방법:

    • By.ID
    • By.NAME
    • By.CLASS_NAME
    • By.TAG_NAME
    • By.XPATH
    • By.CSS_SELECTOR

    이 방법을 조합하면, 어떤 웹페이지든 원하는 요소를 정확히 찾을 수 있습니다.


    3. 동적 페이지 대응 (대기)

    요즘 웹페이지는 바로 로딩되지 않고, 시간이 걸리는 경우가 많습니다.
    그래서 기다리는 코드(Explicit Wait)가 중요합니다.

    python복사편집from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "some-id"))
    )
    

    설명:

    • 최대 10초 동안 기다린 후, 원하는 요소가 나타나면 바로 실행합니다.
    • 기다리지 않으면 “찾을 수 없음” 오류가 발생할 수 있어요.

    셀레니움 활용 방법

    셀레니움을 배우면 정말 다양한 분야에서 활용할 수 있습니다. 대표적인 예시들을 살펴볼게요.

    1. 웹사이트 자동 로그인

    매번 수동으로 로그인하기 귀찮은 사이트가 있다면, 셀레니움으로 자동화할 수 있습니다.
    아이디, 비밀번호 입력하고 로그인 버튼을 클릭하는 과정을 코드로 만들 수 있습니다.

    활용 예: 업무용 시스템 자동 로그인, SNS 자동 로그인 등


    2. 데이터 수집 (스크래핑)

    특정 웹사이트에서 뉴스 제목, 제품 가격, 사용자 후기 등을 수집할 때 셀레니움이 큰 도움이 됩니다.
    특히 버튼 클릭이나 스크롤이 필요한 페이지도 쉽게 대응할 수 있습니다.

    활용 예: 부동산 매물 수집, 가격 모니터링, 트렌드 분석용 데이터 수집


    3. 자동화 봇 만들기

    • 상품 재고 알림 봇
    • 주식 가격 모니터링 봇
    • 티켓팅 자동화 봇 등 다양한 자동화 프로그램을 셀레니움으로 제작할 수 있습니다.

    주의:
    이용하는 사이트의 규정과 정책을 반드시 확인해야 합니다. 무분별한 자동화는 차단이나 법적 문제가 될 수 있습니다.


    셀레니움 최신 버전에서 추가된 주요 기능

    최신 셀레니움에서는 여러 가지 편의 기능이 추가되었습니다.

    • Selenium Manager
      드라이버 자동 다운로드/설정 지원
    • 새로운 Wait 시스템 강화
      명시적 대기가 더 정교해졌습니다.
    • Shadow DOM 지원 강화
      복잡한 웹앱(Element가 숨겨져 있을 때)도 쉽게 접근 가능
    • 더 향상된 네이티브 이벤트 지원
      실제 브라우저와의 상호작용이 훨씬 자연스러워졌습니다.

    따라서 과거 방식으로만 공부하면 안 되고, 항상 최신 문서를 참고하는 습관을 들이는 것이 중요합니다.


    셀레니움 배우기 좋은 추천 학습 방법

    1. 기초부터 시작하기:
      간단한 웹페이지 자동화를 먼저 해보세요.
    2. 작은 프로젝트 만들어 보기:
      뉴스 헤드라인 수집기, 자동 로그인 프로그램 등 쉽게 끝낼 수 있는 프로젝트를 시작하면 재미를 느낄 수 있습니다.
    3. 실제 문제 해결:
      필요한 일을 자동화해보면서 배우는 것이 가장 빠릅니다.
    4. 공식 문서 보기:
      Selenium 공식 사이트는 항상 최신 정보를 제공합니다.

    마무리

    파이썬과 셀레니움을 함께 활용하면, 웹 세상에서 할 수 있는 일의 폭이 놀라울 만큼 넓어집니다.
    단순히 웹사이트를 자동화하는 것을 넘어, 데이터를 수집하고, 비즈니스에 활용하며, 개인적인 시간을 절약하는 데에도 큰 도움이 됩니다.

    처음에는 낯설 수 있지만, 몇 번만 직접 따라해보면 분명히 “어? 별로 어렵지 않네?” 하고 느끼게 될 거예요.

    웹을 자동으로 탐험하는 이 매력적인 기술, 지금 바로 셀레니움과 함께 시작해보세요! 🚀