https://github.com/puppeteer/puppeteer
폴더에 npm init을 통해 패키지를 생성해준다.
그후 npm i puppeteer 을 실행하면 다운이 완료된다
스크린샷 찍기
const puppeteer = require('puppeteer');
const main = async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage(); //새탭을 오픈할떄까지 자동화
await page.goto('https://google.com'); // 크로미움을 실행하고 새페이지를 만들어서 구글로 이동한다
await page.screenshot({ path: 'screenshot.png' }); //스크린샷찍기
await browser.close(); //puppeteer 종료
};
main();
해당 node를 실행하면
screenshot.png가 생성이되고 정상적으로 스크린샷을 찍어서 가져온것을 확인할 수 있다.
크롤링하기
const puppeteer = require('puppeteer');
const fs = require('fs');
const main = async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://www.cgv.co.kr/movies/', {
waitUntil: 'networkidle2',
}); //waitUntil을 통해 언제까지 기다릴지 설정
await page.waitFor(6000); //로드타임을 위해 waitFor
const html = await page.content();
fs.writeFileSync('example.html', html); //example.html
await browser.close();
};
main();
이 짧은 코드를 실행하면
전부 다 담아와서
똑같이 크롤링해온다.
소름이었던건 java에서 jsoup을 활용해서 크롤링했을때랑 다르게 너무나도 쉽고 간단하게 모든 컨텐츠들을 복사해온다는 점이었다. (크롬..당신은..대체)
pdf만들기
해당 puppeteer은 해당 홈페이지를 그대로 pdf로 만들어 저장도 해준다.
const puppeteer = require('puppeteer');
const main = async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://google.com', { waitUntil: 'networkidle2' });
await page.pdf({ path: 'test.pdf', format: 'A4' });
await browser.close();
};
main();
'Node.js > node crawling' 카테고리의 다른 글
노드 크롤링 - puppeteer의 다양한 기능들 (0) | 2020.08.15 |
---|---|
노드 크롤링 - csv에 있는 주소를 통해 puppeteer 크롤링, csv파일 작성하기 (0) | 2020.08.15 |
노드 크롤링 - puppeteer 사용해보기 (0) | 2020.08.15 |
노드 크롤링 - 네이버 영화 크롤링하기, 엑셀에 작성하기 (0) | 2020.08.15 |
노드 크롤링 - csv 파일, 엑셀파일(xlsx) 파싱하기 (0) | 2020.08.15 |