Playwright 는 Microsoft 에서 개발한 오픈 소스 자동화 도구이다
Selenium 과 유사하지만, Chromium, Firefox, WebKit 등 여러 브라우저 엔진을 지원하며
보다 빠르고 안정적인 자동화를 제공하고, 모바일 환경을 시뮬레이션할 수 있다
Cypress 는 자체 문법과 실행 환경을 제공하지만, Playwright 는 기존 언어의 문법을 지원한다
NodeJS, JavaScript, Python, Java, .NET 등 다양한 언어로 사용할 수 있다
Playwright 는 비동기 기능도 지원한다, 로컬에서 비동기 API 를 사용하는 것은 무료지만
Playwright Testing 같은 클라우드 기능은 유료로 제공된다
Playwright 설치하기
Python 으로 Playwright 를 설치한다
공식 Playwright Pytest Plugin 을 설치하려고 하다가 간단하게 써보고 싶어서
iTerm 을 열고 Playwright 와 beautifulsoup4 를 설치했다
pip install playwright beautifulsoup4
Playwright 의 브라우저 바이너리를 설치한다
playwright install
Playwright 사용하기
다 설치되었으면, VS Code 에서 아래 Test Code 를 돌려서 확인해 본다
from playwright.sync_api import sync_playwright
# Playwright 시작
with sync_playwright() as p:
# 브라우저(Chromium) 열기
# headless=False는 브라우저가 눈에 보이도록 설정
browser = p.chromium.launch(headless=False)
page = browser.new_page()
# 웹 페이지 열기
page.goto('https://www.google.com')
# 페이지 제목 출력
print("Page Title: ", page.title())
# 브라우저 닫기
browser.close()
검색어를 입력하고, 뉴스 제목만 크롤링하는 코드도 작성해 봤다
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('http://www.naver.com')
search_box = page.locator('#query')
search_box.fill("로봇")
search_box.press('Enter')
# 검색 결과 화면이 출력될 때까지 대기
page.wait_for_load_state('networkidle')
# 검색 결과에서 뉴스 제목들 추출
results = page.locator('a.news_tit').all()
# 각 뉴스 제목 출력
for result in results:
print(result.text_content())
# 브라우저 종료
browser.close()
Playwright Tip
코드를 어떻게 시작해야 할 지 감이 안 잡힐 때 Record 기능을 이용할 수 있다
Terminal 에 아래 명령어를 입력하면 브라우저가 열리면서 내가 입력한 URL 로 이동하고,
브라우저에서 뚝딱뚝딱하면 해당 코드가 작성된다
생각만큼 엄청 잘 되지는 않는다, 그냥 참고용!
playwright codegen www.naver.com
어디선가 저장했던 사진
'MAC' 카테고리의 다른 글
[MAC] iTerms 에서 SSH 접속 쉽게 설정하기 (0) | 2024.12.22 |
---|---|
[MAC] Jungle Github Push (1) | 2024.10.10 |
[MAC] VScode 로 Remote SSH 접속하기 (0) | 2024.10.04 |
[MAC] VScode 에서 변수 한꺼번에 바꾸기 (0) | 2024.09.24 |
[MAC] GIT feat. MAC (2) | 2024.09.09 |