파이썬 웹 크롤링 입문 5강 – 동적 웹사이트 크롤링: Selenium으로 로그인, 클릭 자동화하기

파이썬 웹 크롤링 입문 5강, 시리즈의 마지막 강의에 오신 걸 환영합니다!

지금까지 우리는 `requests`와 `BeautifulSoup`를 사용해 정적인 HTML에서 데이터를 추출해왔습니다. 하지만 요즘 웹사이트는 대부분 **JavaScript로 동작**합니다. 즉, 처음 HTML을 요청했을 때는 데이터가 없고, **스크립트가 실행되면서 데이터가 로딩**되는 구조죠.

이럴 땐 `requests`로는 크롤링이 어렵습니다. 대신 `Selenium`이라는 강력한 도구를 사용해야 해요.

1. Selenium이란?

Selenium은 브라우저를 직접 제어할 수 있는 자동화 도구입니다.
– 크롬, 파이어폭스 등을 실제로 열고
– 버튼 클릭, 입력, 스크롤 등의 행동을 자동으로 수행할 수 있어요.

즉, 사람이 하는 웹 브라우저 조작을 코드로 자동화할 수 있게 해주는 도구입니다.

2. 설치 및 준비

✅ 설치:
“`bash
pip install selenium
“`

✅ 웹드라이버 설치 (크롬 기준):
– Chrome 버전에 맞는 [크롬드라이버](https://chromedriver.chromium.org/downloads) 다운로드
– 다운로드한 `chromedriver.exe`를 Python 코드와 같은 폴더에 두기

3. 간단한 자동 열기 실습

“`python
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 브라우저 열기
browser = webdriver.Chrome()
browser.get(“https://www.naver.com”)
time.sleep(2)

print(“제목:”, browser.title)

browser.quit()
“`

– `webdriver.Chrome()`으로 브라우저 실행
– `get()`으로 주소 이동
– `quit()`으로 종료

4. 로그인 자동화 실습 (네이버 예시)

※ 보안이 걸린 서비스는 2단계 인증 등으로 로그인 막힐 수 있습니다. 학습용으로만 사용하세요.

“`python
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

browser = webdriver.Chrome()
browser.get(“https://nid.naver.com/nidlogin.login”)
time.sleep(2)

browser.find_element(By.ID, “id”).send_keys(“your_id”)
browser.find_element(By.ID, “pw”).send_keys(“your_password”)
browser.find_element(By.ID, “log.login”).click()
“`

– `find_element(By.ID, “id”)`로 ID 입력창을 찾아서 `send_keys()`로 값을 입력
– 로그인 버튼도 클릭으로 동작 가능

5. 뉴스 기사 클릭 후 크롤링하기

“`python
browser.get(“https://news.naver.com”)

# 예시로 첫 뉴스 링크 클릭
first_news = browser.find_element(By.CSS_SELECTOR, “a.link_thumb”)
print(“기사 제목:”, first_news.get_attribute(“title”))
first_news.click()
“`

– `CSS_SELECTOR`로 원하는 요소 선택 가능
– `.click()`으로 클릭 이벤트 발생

6. 동적 크롤링의 주의점

– 웹 구조 변경 시 코드도 함께 수정해야 함
– 너무 빠른 클릭은 로딩 오류를 유발할 수 있음 → `time.sleep()`으로 대기 시간 확보
– 자동화 방지 시스템이 있을 수 있음 → 크롤링 윤리와 로봇 배제 규칙(robots.txt) 고려

📌 오늘의 요약

  • Selenium은 브라우저 자동 제어 도구로, 동적 웹사이트에 적합
  • 로그인, 버튼 클릭, 입력 등 사람이 하는 조작을 코드로 가능
  • 스크립트 기반 페이지에서 데이터를 수집할 수 있는 강력한 방법

🎉 크롤링 입문 시리즈 완주를 축하합니다!

이번 5강 시리즈를 통해 여러분은 이제 정적 크롤링뿐 아니라, 동적인 웹페이지까지도 제어할 수 있는 기초 역량을 갖추게 되었습니다.

이후에는 다음 주제를 탐색해보세요:
– Selenium으로 Excel 자동화 연동
– 브라우저 없이 크롤링하는 Headless 모드
– 이미지 다운로드, 유튜브 제목 추출 등 특수 크롤링

앞으로도 자동화와 데이터 수집의 세계를 파이썬과 함께 탐험해보시길 바랍니다!

이 강의는 파이썬 웹 크롤링 입문자를 위한 시리즈의 마지막 편입니다. 새로운 주제로 더 깊은 시리즈를 이어갈 예정입니다.