Puppeteer: Chrome과 Firefox를 제어하는 고급 API
Puppeteer는 Chrome 및 Firefox 브라우저를 제어하기 위한 JavaScript 라이브러리입니다. 이 라이브러리는 DevTools 프로토콜 또는 WebDriver BiDi를 통해 브라우저를 제어할 수 있는 고급 API를 제공합니다. Puppeteer는 기본적으로 헤드리스 모드(사용자 인터페이스가 보이지 않는 모드)로 실행됩니다.
시작하기
Puppeteer를 설치하려면 npm을 사용하여 다음 명령어를 입력합니다:
npm i puppeteer
이 명령어는 설치 중에 호환되는 Chrome을 다운로드합니다. Chrome을 다운로드하지 않고 라이브러리로 설치하려면 다음 명령어를 사용합니다:
npm i puppeteer-core
기본 사용법
Puppeteer를 사용하여 브라우저를 시작하고 새로운 빈 페이지를 열 수 있습니다:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
페이지를 특정 URL로 이동시키려면 다음과 같이 합니다:
await page.goto('https://developer.chrome.com/');
화면 크기를 설정하려면:
await page.setViewport({width: 1080, height: 1024});
검색 상자에 텍스트를 입력하려면:
await page.locator('.devsite-search-field').fill('automate beyond recorder');
첫 번째 결과를 클릭하려면:
await page.locator('.devsite-result-item-link').click();
특정 문자열을 포함한 전체 제목을 찾으려면:
const textSelector = await page.locator('text/Customize and automate').waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent);
전체 제목을 출력하려면:
console.log('The title of this blog post is "%s".', fullTitle);
await browser.close();
커뮤니티
Puppeteer에 대한 질문이나 논의는 다음의 커뮤니티에서 할 수 있습니다:
결론
Puppeteer는 웹 자동화 및 스크래핑을 위한 강력한 도구입니다. 이 라이브러리를 사용하여 다양한 웹 페이지와 상호작용하고 데이터를 수집할 수 있습니다.