티스토리 뷰

Puppeteer?

Puppeteer는 Nodejs에서 사용할 수 있는 Headless browser library이다. 크로미움 기반으로 동작하며, 사용자가 브라우저를 켜서 할 수 있는 모든 행위를 완전히 동일하게 수행할 수 있다.

예를 들면, 사용자가 특정 페이지에 접속해서 입력창에 글을 적는다거나, 버튼을 누른다거나 하는 식의 모든 동작을 프로그래밍으로 해결할 수 있다는 얘기이다.

yarn add chromium puppeteer
const puppeteer = require('puppeteer');
const username = '';
const password = '';

const browser = await puppeteer.launch({
headless: false, // false면 브라우저가 동작하는게 눈에 보인다.
defaultViewport: null,
});

const page = await browser.newPage();
await page.goto('https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com');

await page.type('#id', username),
await page.type('#pw', password),
await page.click('#log.login');
await page.waitForNavigation();

위 코드로 자동으로 네이버에 로그인하는 봇을 만들 수 있다.

Node schedule?

Node schedule은 Nodejs가 설치되어 프로그램이 동작하고 있는 컴퓨터의 시간을 기준으로 프로그램을 동작 시킬 수 있는 라이브러리이다. 예를 들어, console창에 매 주 일요일 오후 1시 30분 25초마다 "Hello world!"를 띄우고 싶다면 아래와 같이 작성하면 된다.

const scheduler = require('node-schedule');

scheduler.scheduleJob('25, 30, 13, *, *, 0', () => {
	console.log('Hello world!');
});

뭘 할수 있을까?

정말 많은 일을 할 수가 있는데 예를 들자면 콘서트 티켓팅을 봇이 진행하게 만들 수 있다.

보통 콘서트 티켓팅을 진행할 때는 몇 시에 마켓이 오픈한다는 사실을 미리 공지하고 시작하는데, 해당 시간에 동작하는 프로그램을 미리 제작해두고 예매 시간이 되면 자동으로 결제까지 진행하게 동작하는 것도 가능하다는 얘기이다.

LIST