topic난이도

Puppeteer — 브라우저 자동화

헤드리스 Chrome을 코드로 조종하는 라이브러리. 스크린샷, PDF 변환, 크롤링, E2E 테스트에 활용.

#Puppeteer#크롤링#자동화#Chrome
왜 배우는가

반복적인 웹 작업을 자동화하거나, 동적 페이지를 크롤링해야 할 때 필수다. Node.js의 셀레니움이라 불리며, Chrome DevTools 프로토콜을 직접 사용해 빠르고 안정적이다.

Puppeteer는 Node.js의 셀레니움이다. 눈에 보이지 않는 브라우저(headless Chrome)를 코드로 조종한다. 페이지를 열고, 버튼을 클릭하고, 스크린샷을 찍고, PDF로 저장하는 모든 동작을 자동화할 수 있다.

Puppeteer는 헤드리스 Chrome의 DOM 트리를 page.evaluate()로 조작한다
용도설명
스크린샷웹페이지를 PNG/JPEG로 캡처
PDF 변환HTML 페이지를 PDF로 저장
웹 크롤링SPA(React 등) 동적 페이지 데이터 추출
E2E 테스트로그인→주문→결제 시나리오 자동 검증
javascript
// npm install puppeteer
import puppeteer from "puppeteer";

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
await page.screenshot({ path: "screenshot.png" });

const title = await page.title();
console.log("페이지 제목:", title);
await browser.close();

`launch()` → `newPage()` → `goto()` → 원하는 작업 → `close()` 패턴이 기본이다. `page.evaluate()`로 페이지 내부 DOM에 접근할 수도 있다.

Claude Code 팁: "Puppeteer로 네이버 실시간 검색어 크롤링해줘"라고 지시하면 선택자 추출, 대기 로직까지 포함된 코드를 생성한다.