티스토리 뷰

기타

브라우저봇 만들기 - Puppeteer

장송송 2018. 11. 29. 09:33

0. Puppeteer란?

- Google Chrome에서 공개한 Chrome브라우저를 제어하는 Nodejs 라이브러리이다.

- 브라우저를 제어할수 있기에 브라우저에서 할수있는 모든걸 제어할수 있다.

- https://github.com/GoogleChrome/puppeteer



1. 사용해보기

- 예제 만들기

1) 연합인포맥스 사이트를 접속

2) '주요 국제금융뉴스'를 조회

3) 제목과 링크를 가져오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"use strict";
const puppeteer = require('puppeteer');
 
(async () => {
    const browser = await puppeteer.launch({
        headless: false //디버깅목적..
    });
    const page = await browser.newPage();
 
    await page.goto('http://news.einfomax.co.kr/', {});
    await page.type('#search''주요 국제금융뉴스');
    await page.click('[name=head-search] button');
    await page.waitFor('.article-list-content');
 
    const result = await page.$$('.article-list-content .list-titles');
    for (let item of result) {
        let title = await item.$eval('a', node => node.innerText)
        let href = await item.$eval('a', node => node.href)
        console.log(title, href);
    }
 
    await browser.close();
})();
cs

- headless 옵션을 true로 주면 브라우저가 실행되지 않고 실행됩니다. 



2. 확인해보기

3. 응용하기

- 운영서버 반영전 자동 테스트하기

- 따로 테스터가 없는경우는 반영전 테스트코드를 작성해서 테스트가 통과후 빌드되게 하면 최소한의 장애는 막을수 있겠다.

mocha, puppeteer를 이용했다.




4. 마지막으로

- 브라우저로 할수있는것은 다 가능하다.

- 프로그램으로 하다보니 처음에 작성이 오래걸리긴하겠지만.. 손으로 하는것보다 빠르다.

- 요즘 선착순딜이나 타임딜, 콘서트 예매, 야구 예매 등등..  빠르게하는 사람은 아마 이런방법을 쓰지 않을까 싶다.

- 클라이언트는 얼마든지 조작가능하다.  개발자들은 귀찮더라도 중요한내용들은 서버쪽에서 처리했음 좋겠다.

'기타' 카테고리의 다른 글

각종 알람 쉽게 받기 - Slack  (0) 2018.11.27
각종 알람 쉽게 받기 - NATEON  (0) 2018.11.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함