[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 를 네이버 회원정보로 설정한 후 스크립트를 실행하면 아래와 같은 스크린샷을 얻을 수 있다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.