🐍 파이썬 자동화, 완전 정복! (4) - 웹 크롤링을 넘어선 브라우저 조작 자동화 (Selenium/Playwright)
프로그래밍/파이썬단순 크롤링은 이제 그만! 🤯 파이썬 자동화 스크립트를 시스템에 등록했다면, 이제 웹 조작 자동화의 최고봉인 Playwright를 배워보세요. Selenium을 넘어선 압도적인 속도와 안정성으로 로그인, 클릭, 데이터 입력 등 복잡한 웹 작업을 완벽하게 자동화하는 실전 가이드를 공개합니다. (키워드: 파이썬 자동화, 웹 조작, Playwright, 로그인 자동화)

🚀 4편. 웹 크롤링을 넘어선 브라우저 조작 자동화 (Selenium/Playwright)
📝 서론: 크롤링의 한계와 조작 자동화의 필요성
안녕하세요, cheoly입니다! 이전 3편에서는 파이썬 자동화 스크립트를 윈도우와 리눅스에 등록하여 주기적으로 실행하는 실전 가이드를 다뤘습니다. 이제 우리의 코드는 '정해진 시간에 알아서' 실행될 준비가 되었죠.
하지만 웹사이트를 다룰 때, 단순히 정적인 HTML 데이터를 긁어오는 **크롤링(Scraping)**만으로는 부족한 경우가 많습니다.
- 로그인 페이지를 통과해야 하는 경우
- 버튼을 클릭해야 새로운 데이터가 로딩되는 경우 (JavaScript 기반 웹사이트)
- 특정 폼에 정보를 입력하고 '제출'해야 하는 경우
이럴 땐, 실제 사용자가 브라우저를 조작하는 것처럼 파이썬 코드가 대신 행동해야 합니다. 이것이 바로 브라우저 조작 자동화의 영역이며, 주로 Selenium이나 Playwright 같은 라이브러리를 사용합니다.
🛠️ 핵심 도구 소개: Selenium vs. Playwright
| 특징 | Selenium (셀레니움) | Playwright (플레이라이트) |
| 등장 시기 | 2004년 (오래됨, 표준) | 2020년 (비교적 최신, MS 주도) |
| 속도 및 성능 | 상대적으로 느림 (WebDriver 프로토콜 사용) | 매우 빠름 (개발자 도구 프로토콜 사용) |
| 지원 브라우저 | Chrome, Firefox, Edge, Safari 등 | Chrome, Firefox, Safari (단일 API로 모두 제어) |
| 비고 | 오랜 역사만큼 자료가 많아 입문이 쉽지만, 설정이 복잡할 수 있습니다. | 설정이 간편하고 안정성이 높지만, 아직 Selenium만큼 자료가 많지는 않습니다. 최근 강력하게 추천되는 도구입니다. |
이 시리즈에서는 최신 트렌드에 맞춰 더 빠르고 안정적인 Playwright를 사용해 보겠습니다.
💡 실전 가이드: Playwright 설치 및 기본 조작
1. 설치 및 브라우저 드라이버 설정
Playwright는 필요한 브라우저 드라이버까지 한 번에 설치해 줍니다.
# Playwright 설치
pip install playwright
# 필요한 브라우저 드라이버 설치 (Chromium, Firefox, WebKit)
playwright install
2. 기본 조작 코드: 특정 페이지 접속 후 검색 필드에 입력하기
우리의 목표는 브라우저를 열고, 특정 URL로 이동한 다음, 검색창에 텍스트를 입력하는 것입니다.
from playwright.sync_api import sync_playwright
def run(playwright):
# 1. 브라우저 실행 (headless=False로 설정하면 창이 눈앞에 보입니다)
browser = playwright.chromium.launch(headless=False)
page = browser.new_page()
# 2. 특정 웹사이트 접속
page.goto("[https://www.google.com](https://www.google.com)")
print(f"현재 페이지 제목: {page.title()}")
# 3. 입력 필드 찾기 및 텍스트 입력
# Google 검색창은 일반적으로 name="q" 속성을 가집니다.
search_box_selector = 'textarea[name="q"]'
# 입력 대기 (요소가 나타날 때까지 기다림)
page.wait_for_selector(search_box_selector)
# '파이썬 자동화' 입력
page.fill(search_box_selector, "파이썬 자동화")
# 4. 엔터 키를 눌러 검색 실행
page.press(search_box_selector, "Enter")
# 5. 검색 결과 페이지 확인 (5초 대기)
page.wait_for_timeout(5000)
# 6. 브라우저 종료
browser.close()
with sync_playwright() as playwright:
run(playwright)
[주의] page.wait_for_timeout(5000)은 디버깅용이며, 실제 운영에서는 특정 요소가 로딩되기를 기다리는 page.wait_for_selector()나 page.wait_for_url() 등을 사용해야 안정적입니다.
💡 심화: 로그인 처리와 Headless 모드
1. 클릭 자동화
특정 버튼을 찾아 클릭하는 것은 자동화의 기본입니다.
# '로그인' 버튼을 텍스트로 찾아서 클릭
page.click("text=로그인")
2. Headless 모드 (가장 중요!)
작업 스케줄러에 등록하여 서버나 백그라운드에서 스크립트를 실행할 때는 브라우저 창이 뜨지 않도록 해야 합니다. 이를 Headless 모드라고 합니다.
위 코드에서 browser = playwright.chromium.launch(headless=False) 부분을 browser = playwright.chromium.launch(**headless=True**)로 변경하면, 브라우저 창이 보이지 않은 채 백그라운드에서 모든 작업이 처리됩니다.
🎁 결론 및 다음 예고
브라우저 조작 자동화는 단순 크롤링을 넘어 실제 업무 환경에서 가장 높은 효율을 낼 수 있는 기술입니다. 로그인, 복잡한 데이터 입력/제출 등 이제 여러분의 파이썬 스크립트가 웹사이트와 완벽하게 상호작용할 수 있게 되었습니다.
다음 5편에서는 이 기술을 활용하여 **"퇴근 후 파일 정리부터 보고서 작성까지 (엑셀/PDF/이메일)"**라는 주제로, 가장 현실적이고 실용적인 업무 문서 자동화를 다뤄보겠습니다. 기대해주세요!
'프로그래밍 > 파이썬' 카테고리의 다른 글
| 퇴근 후 30분, 자동화로 하루를 정리하자 — 엑셀·PDF·이메일까지 한 번에! (0) | 2025.11.10 |
|---|---|
| 💻 파이썬 자동화, 완전 정복! (3) - 윈도우/리눅스 작업 스케줄러 등록 실전 가이드 (0) | 2025.11.08 |
| 🐍 [cheoly의 확장] C++ 엔지니어, 파이썬으로 '개발 업무 자동화' 시작하기 (파일/데이터 처리 실전 가이드) (0) | 2025.11.07 |
| 비주얼 스튜디오 파이썬 개발 환경 구축하기 (0) | 2024.08.13 |