본문으로 바로가기

TIL 2021-11-11 Puppeteer와 Cheerio

category TIL 2021. 11. 11. 22:45

크롤링 사이트를 만들기 위해서 Node에서 돌아가는 라이브러리를 찾아보니 이 둘을 같이 사용하는 경우를 자주 보았다.

 

 

Puppeteer 같은 경우에는 브라우저 상의 작업들을 자동화해주는 라이브러리고, chromium 같은 google chrome headless browser에서만 돌아간다. Headless browser는 GUI가 없는 브라우저를 뜻한다. 사이트의 PDF를 생성할수 있고, SPA를 크롤링하여 prerendered content를 생성할 수 있다. 또한 UI 테스트, 키보드 조작 등이 가능하다. 그리고 자동화 테스트 환경을 구성할수 있다.

 

 

Cheerio는 jquery 기반의 마크업 분석 및 조작을 담당하는 라이브러리다. CSS, 리소스 로딩, 자바스크립트 실행, 이런 것들이 없으며 따라서 단순 크롤링에서는 Cheerio가 Puppeteer보다 빠르다. 다만 SPA 같은 경우에는 제대로 크롤링이 안되니 이런 경우에는 Puppeteer를 사용해야한다.

 

 

 

SPA로 실행되는 사이트 같은 경우 Puppeteer을 사용하고, 이외의 경우 Cheerio로도 크롤링이 되는 경우에는 Cheerio로 사용하면 될 거 같다.

 

마치 BeautifulSoup와 Selenium과 비슷한 관계인거 같다.