본문 바로가기

토이 프로젝트

[자바스크립트 ] 매크로 만들기 - puppeteer (간단한 자동 로그인)

 

보통 매크로나 웹 크롤링은 python으로 많이들 만든다는 것을 알고 있었다. 하지만 자바스크립트로도 가능하다고 하여 이번 프로젝트는 웹 매크로 만들어보려고 한다.

 

*매크로 사용으로 인한 불이익은 어떠한 경우에도 책임지지 않습니다.

 

우선 npm을 이용하여 puppeteer를 자신의 프로젝트 폴더에서 다운로드 한다.

npm install puppeteer

 

이후 자신의 .js 파일을 만들어 코드를 넣는데 저는 index.js로 만들었습니다. 자세한 설명은 주석을 달아놓았습니다.

const puppeteer = require('puppeteer');
const sanitizeHtml = require('sanitize-html');

(async () => {
  // launch 메서드는 chrome을 실행시킴. headless는 ui를 제공하는지 안하는지 여부임. false로 해야 ui가 뜨고 아니면 백그라운드에서만 켜짐
  const browser = await puppeteer.launch({headless: false, defaultViewport: null});

  // 새롭게 페이지를 만든다.
  const page = await browser.newPage();

  // goto는 url로 이동하는 메서드
  await page.goto('http://sample.com');
  
  // 해당 탭에서 마우스 오른쪽 버튼 클릭 후 검사 버튼을 눌러 태그의 classname이나 id값을 알아내서 넣는다.
  await page.type('#id', 'Your Id');
  await page.type('#pw', 'Your Pw');
  
  // 위와 마찬가지로 버튼의 classname이나 id 값을 넣는다.
  await page.click('#btn');

  // 로그인 후 새로운 페이지로 넘어갈 때 자연스럽게 넘겨주는 함수이다.
  await page.waitForNavigation();
  
})();

 

코드에 적혀있는 기능 외에도 스크린샷 기능이나 웹 크롤링 기능들을 사용할 수 있습니다. 자세한 내용은 아래 puppeteer 공식 사이트에서 확인 할 수 있습니다.

 

pptr.dev/

 

https://pptr.dev/

 

pptr.dev

 

코드가 적혀있는 github 링크입니다.

github.com/ukcasso/autologin

 

ukcasso/autologin

Contribute to ukcasso/autologin development by creating an account on GitHub.

github.com