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

파이썬 Selenium으로 로그인이 필요한 사이트 자동 크롤링하기

by DDBobD 2026. 2. 25.
728x90
반응형
지난 포스팅에서 다뤘던 BeautifulSoup은 빠르고 간편하지만, 한계가 있습니다. 바로 '로그인'이 필요하거나 '더보기' 버튼을 클릭해야 데이터가 나타나는 사이트에서는 힘을 쓰지 못한다는 점인데요.

오늘은 마치 사람이 브라우저를 직접 조작하는 것처럼 동작하는 강력한 도구, Selenium(셀레니움)을 소개해 드립니다. 이제 로그인이 필요한 커뮤니티나 복잡한 쇼핑몰 데이터도 자동으로 수집해 보세요!

 

1. Selenium이란

Selenium은 웹 브라우저의 동작을 자동화해 주는 도구입니다.

  • 장점: 마우스 클릭, 키보드 입력, 스크롤 등 사람이 하는 모든 행동을 코드로 구현할 수 있습니다.
  • 활용: 로그인 후 마이페이지 정보 가져오기, 실시간 예매 자동화, 인스타그램 게시글 수집 등

 

2. 설치

Selenium은 실제 브라우저를 제어하기 때문에 라이브러리와 함께 해당 브라우저의 드라이버가 필요합니다. (최근 버전은 드라이버를 자동으로 관리해 주어 매우 편리해졌습니다.)

pip install selenium webdriver-manager

 

3. 실전 예제: 자동 로그인 및 데이터 수집 기초

네이버 로그인을 예로 들어 자동화 로직을 짜보겠습니다.

(보안 정책에 따라 캡차(CAPTCHA)가 뜰 수 있으니 테스트 시 주의하세요!)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time

# 1. 브라우저 설정 및 실행
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # 2. 로그인 페이지 접속
    driver.get("https://nid.naver.com/nidlogin.login")
    time.sleep(2) # 페이지 로딩 대기

    # 3. 아이디 및 비밀번호 입력 (직접 입력 대신 copy/paste 방식을 권장하지만 기초 예제로 설명)
    id_input = driver.find_element(By.ID, "id")
    id_input.send_keys("your_id") # 본인 아이디

    pw_input = driver.find_element(By.ID, "pw")
    pw_input.send_keys("your_password") # 본인 비밀번호

    # 4. 로그인 버튼 클릭
    pw_input.send_keys(Keys.ENTER)
    time.sleep(3) # 로그인 완료 대기

    # 5. 로그인 후 특정 페이지로 이동하여 데이터 수집
    driver.get("https://mail.naver.com/")
    time.sleep(2)
    
    # 예시: 메일 제목들 가져오기
    mails = driver.find_elements(By.CSS_SELECTOR, ".mail_title")
    for mail in mails:
        print(mail.text)

finally:
    # 6. 브라우저 종료
    time.sleep(5)
    driver.quit()

 

4. Selenium 사용 시 꿀팁

 

  • Implicitly Wait: time.sleep은 무조건 정해진 시간을 기다리지만, implicitly_wait(10)을 사용하면 요소가 나타나는 즉시 다음 코드를 실행하여 훨씬 효율적입니다.
  • Headless 모드: 브라우저 창이 실제로 뜨지 않고 백그라운드에서 실행되게 설정하면 컴퓨터 자원을 아낄 수 있습니다.

 

오늘은 BeautifulSoup의 한계를 뛰어넘는 Selenium에 대해 알아봤습니다. 로그인 장벽 때문에 포기했던 데이터 수집도 이제는 가능해지셨을 거예요.

다만, 자동 로그인을 너무 자주 시도하면 사이트 측에서 계정을 차단하거나 보안 문자를 요구할 수 있으니 주의해서 사용해야 합니다. 이제 여러분은 데이터 합치기 - 필터링 - 시각화 - 자동 수집까지 이어지는 파이썬 데이터 분석의 풀 코스를 모두 접하셨습니다!

 

 

728x90
반응형