728x90
반응형
관련 포스트
- ScreenShot Crawling
developing-move.tistory.com/173
- pdf Crawling
developing-move.tistory.com/175
원하는 페이지에서 html 소스를 가져와 파일 시스템을 이용하여 실제 파일로 출력하는 로직이다.
각 라인에 대한 설명은 주석에 있다.
예시 소스
const puppeteer = require('puppeteer');
const fs = require('fs');
// 파일시스템을 이용하여 실제 파일을 출력하는 로직을 작성
// puppeteer를 활용한 코드는 모두 비동기 코드로 이루어진다.
const main = async () => {
// puppeteer 실행
const browser = await puppeteer.launch();
// 새로운 페이지를 만듦
const page = await browser.newPage();
// 파싱할 데이터가 있는 페이지로 이동 / waitUntil을 사용하여 언제까지 기다릴 것인지 명시
await page.goto('https://example.com', {waitUntil : 'networkidle2'});
// 로드 타임이 오래걸릴 경우 임의로 기다리게 하는 메소드
// 외부의 리소스(이미지, 자바스크립트 파일 등) 로드 타임이 많이 걸리는 경우
await page.waitFor(6000);
// 파싱하기 위해 html 데이터를 가져옴(핵심 로직)
const html = await page.content()
// 할당된 데이터를 google.html이라는 파일 명으로 파일을 작성
fs.writeFileSync("example.html", html);
// 메모리 누수를 방지하기 위해 종료
await browser.close;
}
main();
728x90
반응형
'Javascript > Node' 카테고리의 다른 글
[Node] Crawling puppeteer를 활용하여 웹 페이지를 pdf로 변환 및 저장 (0) | 2020.10.13 |
---|---|
[Node] Crawling puppeteer 활용하여 웹페이지에 스크린샷을 자동으로 생성하기 (0) | 2020.10.13 |
[Node] Class 활용하여 express 선언하기 (0) | 2020.10.13 |
[Node] Prototype vs Class 차이점 알아보기 (0) | 2020.10.13 |
[Node] http 모듈 이용하여 서버 구축하기 (0) | 2020.10.13 |