Profile picture

[Python] 브라우저 자동화 - playwright

JaehyoJJAng2023년 05월 10일

PlayWright

크몽 의뢰나 간단한 토이프로젝트 또는 특정 사이트를 자동화 해야하는 경우에 selenium을 자주 사용하고는 했는데
이번에 playwright를 알게 되어서 사용법에 대해 기록해놓으려 한다.

참고로 playwright는 마이크로소프트가 만들고 있다!

그리고 playwright가 기존 selenium을 대체할 수 있는 이유는 코드젠이라는 기능인데

해당 기능은 브라우저를 열고 단계별로 실행하면 그걸 녹화해서 파이썬 스크립트로 만들어준다.


설치 방법

Ubuntu 22.04

1. 사전 패키지 설치

sudo apt install -y \
    libwoff1 \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-libav \
    libgstreamer-plugins-base1.0-dev \
    libgstreamer-plugins-bad1.0-dev \
    libwebpdemux2 \
    libharfbuzz-icu0 \
    libenchant-2-2 \
    libsecret-1-0 \
    libhyphen0 \
    libmanette-0.2-0 \
    libgles2

2. playwright 설치

pip install playwright
playwright install

사용방법

playwright의 튜토리얼은 기존 셀레니움을 사용하던 방식과 다르다.

import playwright.sync_api as pl

# 동기화 방식으로 사용 시작
playwright : pl.Playwright  = pl.sync_playwright().start()

# 브라우저가 보이도록 headless 옵션 끄고 , 크롬 브라우저 사용
# edge 브라우저 사용 시 `playwright install msedge` 커맨드로 엣지 브라우저 설치
browser : pl.Browser = playwright.chromium.launch(headless=False,channel='chrome')
context : pl.BrowserContext = browser.new_context()

# 브라우저로 웹페이지 실행
page : pl.Page = context.new_page()

# 아래 주소로 이동
url : str = 'https://www.waytothem.com/blog'
page.goto(url=url)

# 브라우저 종료
browser.close()

# playwright 종료
playwright.stop()

브라우저 켜지는 속도는 개인적으로 playwright가 더 빠른 것 같기도 하고, 나머지는 간단한 토이 프로젝트성으로 테스트 해보며 비교 해보면 좋을 것 같음


Loading script...