[nodejs] puppeteer 를 이용한 네이버 회원 로그인
puppeteer 는 nodejs기반 헤드리스 브라우저 컨트롤 API 이다. puppeteer 를 이용하여 네이버 회원 로그인 후 네이버 메인 스크린샷을 출력하는 코드이다.
puppeteer 설치
npm install --save puppeteer
Ubuntu 16.04 환경에서 아래 스크립트 실행 때 error while loading shared libraries: libXss.so.1
또는 error while loading shared libraries: libgconf-2.so.4
오류가 발생하면 아래 패키지를 설치해준다.
sudo apt-get install libxss1 libgconf
스크린샷에서 한글이 제대로 표시되지 않는다면 한글폰트 관련 패키지를 설치한다.
sudo apt-get install libfontenc1 libxfont1 xfonts-encodings xfonts-utils xfonts-base xfonts-75dpi
sudo apt-get install language-pack-ko
sudo apt-get install fonts-nanum fonts-nanum-coding fonts-nanum-extra
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const naver_id = "네이버 아이디";
const naver_pw = "네이버 비밀번호";
await page.goto('https://nid.naver.com/nidlogin.login');
await page.evaluate((id, pw) => {
document.querySelector('#id').value = id;
document.querySelector('#pw').value = pw;
}, naver_id, naver_pw);
await page.click('.btn_global');
await page.waitForNavigation();
await page.goto('https://naver.com');
await page.screenshot({ path: 'naver.png', fullPage:true });
await browser.close();
})();
위 코드 중 naver_id
와 naver_pw
를 네이버 회원정보로 설정한 후 스크립트를 실행하면 아래와 같은 스크린샷을 얻을 수 있다.