상세 컨텐츠

본문 제목

cheerio 와 puffeteer 의 사용법 및 장단점

JavaScript

by 폴리프레임 2023. 8. 27. 00:03

본문

반응형

cheerio Puppeteer는 웹 스크래핑과 웹 자동화를 위한 JavaScript 라이브러리입니다. 하지만 각각 다른 목적과 특징을 가지고 있습니다. 아래에서 각 라이브러리의 사용법과 장단점을 비교해보겠습니다.

 

cheerio:

cheerio는 주로 서버 측에서 HTML 파싱과 조작을 위해 사용됩니다. jQuery와 유사한 API를 제공하여 HTML 문서를 조작하고 데이터를 추출하는 데에 편리합니다

  • 장점:
    • 가볍고 빠르며 서버 측에서 HTML 파싱 및 조작에 용이하다.
    • jQuery와 유사한 문법을 사용하여 사용자가 익숙한 방식으로 웹 스크래핑을 할 수 있다.
    • 자체적으로 브라우저를 실행하지 않기 때문에 메모리나 자원 사용이 적다.
  • 단점:
    • 동적으로 로드되는 페이지나 JavaScript 실행이 필요한 상황에서는 한계가 있다.
    • 브라우저 렌더링 및 JavaScript 실행을 지원하지 않기 때문에 SPA와 같은 페이지에선 부족할 수 있다.
const cheerio = require('cheerio');
const html = '<h1>Hello, Cheerio!</h1>';
const $ = cheerio.load(html);

const text = $('h1').text();
console.log(text); // 출력: "Hello, Cheerio!"

puppeteer

사용법:

Puppeteer는 Chrome 브라우저를 제어하여 웹 페이지를 스크랩하고 자동화합니다. 동적으로 로드되는 페이지나 JavaScript 실행이 필요한 작업을 수행할 수 있습니다.

  • 장점:
    • 브라우저를 제어하기 때문에 동적으로 로드되는 페이지나 SPA도 처리 가능하다.
    • 페이지에서 JavaScript 실행을 통해 생성되는 데이터를 스크랩할 수 있다.
    • 웹 애플리케이션 테스팅 등 다양한 용도로 활용 가능하다.
  • 단점:
    • Chrome 브라우저를 사용하기 때문에 메모리 및 자원 사용이 크다.
    • 가볍고 빠른 작업에는 Cheerio보다 무거울 수 있다.
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.example.com');

  const title = await page.title();
  console.log(title); // 출력: "Example Domain"

  await browser.close();
})();

비교적 정적인 페이지 스크랩이나 파싱에는 Cheerio가 유용하며, 동적 페이지나 SPA에서는 Puppeteer가 적합합니다. 선택은 사용하고자 하는 작업의 종류와 요구사항에 따라 달라질 수 있습니다.

 

관련글 더보기