파이썬으로 웹 크롤링 고급편 4강입니다!
이번 강의에서는 Selenium이라는 도구를 활용해 JavaScript로 구성된 동적 웹페이지를 크롤링하는 방법을 배워보겠습니다.
앞선 강의에서 배운 requests 방식은 정적 콘텐츠(HTML 기반)에 적합했지만, 실제 웹에서는 JavaScript가 실행된 후에야 콘텐츠가 생성되는 경우가 많습니다. 예를 들어, 인스타그램, 쿠팡, 트위터, 네이버 쇼핑 등이 그렇습니다.
이런 웹페이지는 브라우저를 직접 조작해야만 원하는 정보를 가져올 수 있는데, 이때 사용하는 도구가 바로 Selenium입니다.
1. Selenium이란?
Selenium은 웹 브라우저를 자동으로 제어할 수 있게 해주는 파이썬 라이브러리입니다.
– 실제 브라우저(Chrome, Firefox 등)를 띄워줍니다
– 버튼 클릭, 스크롤, 텍스트 입력 등 사용자 행동을 자동화합니다
– JavaScript로 렌더링되는 콘텐츠도 문제없이 수집할 수 있습니다
2. 설치 방법
pip install selenium
그리고 크롬을 제어하려면 크롬 버전에 맞는 **ChromeDriver**를 설치해야 합니다.
다운로드 링크: https://chromedriver.chromium.org/downloads
설치 후, 파이썬 코드에서 해당 드라이버 경로를 지정해줘야 합니다.
3. 기본 코드 구조
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 드라이버 경로 지정
browser = webdriver.Chrome()
# 페이지 접속
browser.get("https://news.naver.com")
# 기다리기 (자바스크립트 렌더링 대기)
time.sleep(3)
# 요소 찾기
headlines = browser.find_elements(By.CLASS_NAME, "newsnow_tx_inner")
for hl in headlines:
print(hl.text)
browser.quit()
이 코드를 실행하면 실제 브라우저가 열리고, 뉴스 제목을 가져오는 자동화가 이루어집니다.
4. 자주 쓰는 기능들
browser.get(url)
– 웹페이지 열기find_element
,find_elements
– 요소 찾기 (By.CLASS_NAME, By.ID 등)send_keys("문자입력")
– 검색창 등 텍스트 입력click()
– 버튼 클릭execute_script()
– 스크롤 내리기 등 JS 직접 실행
예시 – 자동 스크롤:
for i in range(5):
browser.execute_script("window.scrollTo(0, document.body.scrollHeight)")
time.sleep(2)
5. 팁: headless 모드로 브라우저 안 보이게 하기
배포 시에는 브라우저 창이 보이지 않게 실행하고 싶을 수 있습니다. 이럴 땐 headless 모드를 사용합니다.
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
browser = webdriver.Chrome(options=options)
서버나 백그라운드에서 실행할 때 유용합니다.
6. 다음 강의 예고
5강 – 이미지, 파일, 동영상 수집 크롤링 실전
다음 시간에는 실제로 많이 사용하는 콘텐츠인 이미지, PDF, 썸네일, 동영상 등을 자동으로 다운로드하는 방법을 실습해봅니다. requests, Selenium, urllib 등 다양한 방법이 활용될 거예요!
—
이 강의는 웹 크롤링의 실전 기술을 기반으로, 현업에서도 통하는 자동화 스킬을 익힐 수 있도록 구성되어 있습니다.