puppeteer 치트 시트
소개
스크래핑을 할 때 puppeteer를 사용해 보면
라는 소리를 받았으므로, 메모를 하면서 만져 보고 싶습니다.
Puppeteer란?
Node에서 헤드리스 Chrome을 조작할 수 있는 패키지
→ 동적 페이지의 스크래핑 등에 매우 편리
환경 및 설치
❯ node -v
v12.6.0
❯ yarn -v
1.17.3
❯ yarn add puppeteer
yarn add v1.17.3
hello world
test.jsconst puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
console.log("スクリーンショットを保存しました");
})();
자주 사용하는(이번에 사용한)method
API 문서
Puppeteer
이름
meaning
launch()
브라우저 시작
브라우저
이름
meaning
newPage()
새 페이지 생성
페이지
이름
meaning
goto('URL')
URL에 액세스
$(selector)
태그 및 CSS 선택기로 필터링
focus(selector)
태그 및 CSS 선택기로 필터링 (첫 번째 요소 가져 오기)
type(selector, value)
선택기에 입력
click(selector)
선택기 클릭
waitForNavigation(waitOptions)
옵션 타이밍까지 기다리기
screenshot({path: 'path.png'})
path 이름으로 스크린샷 저장
샘플
아마존에서 상품 검색하기
test.jsconst puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.amazon.co.jp/');
await page.type('#twotabsearchtextbox', 'Nature Remo mini');
await page.click('input[type="submit"][value="検索"]');
await page.waitForNavigation({waitUntil:"networkidle0"});
await page.screenshot({path: 'example.png'});
await browser.close();
})();
Reference
이 문제에 관하여(puppeteer 치트 시트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hurikake06/items/ea3f9826519fc9fde43b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
❯ node -v
v12.6.0
❯ yarn -v
1.17.3
❯ yarn add puppeteer
yarn add v1.17.3
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
console.log("スクリーンショットを保存しました");
})();
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.amazon.co.jp/');
await page.type('#twotabsearchtextbox', 'Nature Remo mini');
await page.click('input[type="submit"][value="検索"]');
await page.waitForNavigation({waitUntil:"networkidle0"});
await page.screenshot({path: 'example.png'});
await browser.close();
})();
Reference
이 문제에 관하여(puppeteer 치트 시트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hurikake06/items/ea3f9826519fc9fde43b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)