https://github.com/puppeteer/puppeteer
puppeteer은 Chromium을 제어해주는 라이브러리로써
Node에서 크롤링을 할때 많이 활용한다.
const puppeteer = require("puppeteer");
const crawler = async () => {
//브라우저를 띄우고
const browser = await puppeteer.launch({headless: false});
// 페이지를 띄우고
const page = await browser.newPage();
const page2 = await browser.newPage();
const page3 = await browser.newPage();
// 페이지 이동
await page.goto('https://www.naver.com');
await page2.goto('https://www.google.com');
await page3.goto('https://www.daum.net');
//3초정도 대기하다
await page.waitFor(3000);
await page2.waitFor(1000);
await page3.waitFor(1000);
//페이지를 종료하고
await page.close();
await page2.close();
await page3.close();
//브라우저를 종료한다
await browser.close();
}
crawler();
Promise.all을 활용해서 리팩토링을 진행하였다.
const puppeteer = require("puppeteer");
const crawler = async () => {
//브라우저를 띄우고
const browser = await puppeteer.launch({ headless: false });
// 페이지를 띄우고
const [page, page2, page3] = await Promise.all([
browser.newPage(),
browser.newPage(),
browser.newPage(),
]);
// 페이지 이동
await Promise.all([
page.goto("https://www.naver.com"),
page2.goto("https://www.google.com"),
page3.goto("https://www.daum.net"),
]);
await Promise.all([
page.waitFor(3000),
page2.waitFor(1000),
page3.waitFor(1000),
]);
console.log("working");
//3초정도 대기하다
//페이지를 종료하고
await page.close();
await page2.close();
await page3.close();
//브라우저를 종료한다
await browser.close();
};
crawler();
해당 크롤러를 실행하면
이렇게 자동화된 테스트소프트웨어로 제어를 해준다
'Node.js > node crawling' 카테고리의 다른 글
노드 크롤링 - puppeteer의 다양한 기능들 (0) | 2020.08.15 |
---|---|
노드 크롤링 - csv에 있는 주소를 통해 puppeteer 크롤링, csv파일 작성하기 (0) | 2020.08.15 |
노드 크롤링 - 네이버 영화 크롤링하기, 엑셀에 작성하기 (0) | 2020.08.15 |
노드 크롤링 - csv 파일, 엑셀파일(xlsx) 파싱하기 (0) | 2020.08.15 |
puppeteer을 활용해서 스크린샷 찍기, 크롤링하기, pdf 생성하기 (0) | 2020.05.16 |