프로그래밍 언어/Python

playwright 인스펙터 실행하기

· 코딩마이데이

이번 절의 실습 목표는 쇼핑 트렌드 보고서를 작성하는 것입니다. 먼저, 트렌드 분석을 위한 데이터를 수집하기 위해 네이버플러스 스토어(https://shopping.naver.com/ns/home)에 접속하는 과정을 자동화하는 코드를 작성합니다. 다음 순서로 진행합니다.

 

1. 객체 playwright, Browser, Page를 생성하는 함수 run_playwright()를 실행합니다.

2. Page 객체에 URL을 전달하여 네이버플러스 스토어에 접속합니다.

3. playwright 인스펙터를 실행해 웹 브라우저의 동작을 일시 중지합니다.

 

비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_1_2.py'로 지정하세요. 그리고 나서 다음 코드를 입력한 뒤 실헹 아이콘을 클릭하여 실행하세요.

from playwright.sync_api import Browser, Page, Playwright, sync_playwright # 01

def run_playwright(slow_mo: float = None  # 03
    ) -> tuple[Playwright, Browser, Page]: # 04
    play: Playwright = sync_playwright().start() # Playwright 객체 생성 # 05
    browser: Browser = play.chromium.launch( # Browser 객체 생성
        args=["--start-maximized"], # 웹 브라우저 최대화 # 07
        headless=False, # 헤드리스 모드 사용 여부 # 08
        slow_mo=slow_mo, # 자동화 처리 지연 시간
    )
    page: Page = browser.new_page(no_viewport=True) # Page 객체 # 11
    page.add_locator_handler(
        page.get_by_role("button", name="하루 동안 보자 않기"), # 버튼을 찾으면
        handler=lambda loc: loc.click(), # 클릭
        times=1, # 총 한 번만 실헹
    )
    return play, browser, page

if __name__ == "__main__":
    play, browser, page = run_playwright()
    page.goto("https://shopping.naver.com/ns/home") # 21
    page.pause() # 인스펙터 실행 # 22
    browser.close() # Browser 객체 삭제
    play.stop() # Playwright 객체 삭제

 

01 웹 브라우저의 동작을 자동화하기 위해 playwright 패키지의 sync_playwright 클래스를 불러옵니다.

03~04 세 객체의 Playwright, Browser, Page를 반환하는 함수 run_playwright()를 정의합니다. 매개변수 slow_mo는 처리 지연을밀리세컨드 단위로 설정합니다.

05 함수 sync_playwright().start()를 사용해서 크로미움 브라우저를 생성합니다.

07 함수 chromium.launch()의 매개변수 args에 브라우저 크기를 최대화하는 옵션을 지정합니다.

08 매개변수 headless에 False를 전달하여 브라우저 GUI 모드로 실행합니다.

11 함수 new_page()의 매개변수로 no_viewport=True를 전달하여 화면의 크기를 브라우저 맞춥니다.

21 함수 goto()를 사용해  브라우저에서 URL로 이동합니다.

22 인스팩터를 실행하기 위해 코드 실행을 일시정지합니다.

 

크로미움 웹 브라우저를 통해 네이버플러스 스토어가 열라고, 인스펙션가 생성됩니다.