본문 바로가기

Javascript/Node

[Node] Crawling puppeteer를 활용하여 웹 페이지를 pdf로 변환 및 저장

728x90
반응형

 

 

관련 포스트

- HTML Crawling

developing-move.tistory.com/174

 

[Node] Crawling puppeteer를 활용하여 웹 페이지의 데이터를 Crawling하기

원하는 페이지에서 html 소스를 가져와 파일 시스템을 이용하여 실제 파일로 출력하는 로직이다. 각 라인에 대한 설명은 주석에 있다. 예시 소스 const puppeteer = require('puppeteer'); const fs = require('f..

developing-move.tistory.com

- ScreenShot Crawling

developing-move.tistory.com/173

 

[Node] Crawling puppeteer 활용하여 웹페이지에 스크린샷을 자동으로 생성하기

관련 포스트 - HTML Crawling developing-move.tistory.com/174 [Node] Crawling puppeteer를 활용하여 웹 페이지의 데이터를 Crawling하기 원하는 페이지에서 html 소스를 가져와 파일 시스템을 이용하여 실제..

developing-move.tistory.com

 

Crawling 마지막으로 원하는 페이지를 pdf 변환하여 저장하는 것이다.

 

예시소스

const puppeteer = require('puppeteer');

// puppeteer를 활용한 코드는 모두 비동기 코드로 이루어진다.
const main = async () => {
    // puppeteer 실행
    const browser = await puppeteer.launch();
    // 새로운 페이지를 만듦
    const page = await browser.newPage();
    // pdf 파일을 생성하고자 하는 페이지로 이동 
    // (추가옵션) 해당 웹사이트에 접속하여 로드 되는 시간이 무한정 걸릴 수도 있고
    // 해당 서버나 네트워크에 문제가 있어 시간이 많이 소요될 수도 있다
    // 네트워크 환경이나 기타 외부적인 환경 등으로 문제가 생겼을 때 언제까지 기다릴 것인지를 지정하는 것
    //  networkidle2는 네트워크 상태가 여유가 있는 상태가 될 때까지만 기다린다.
    await page.goto('https://developing-move.tistory.com/category/JavaScript/Node?page=4', {waitUntil : 'networkidle2'});
    // pdf 파일을 만듦
    await page.pdf({path : 'myBlog.pdf', format : 'A4'});
    // 메모리 누수 방지
    await browser.close();
}
main();

해당 경로로 이동하여 파일 실행

goto() 부분을 구글로 변경하고 파일 이름을 google.pdf 변경했을

728x90
반응형