티스토리 뷰
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
링크
TAG
- activemq
- 봇
- 브라우저봇
- 2FA
- 오픈API
- electron-updater
- ElasticSearch
- 자동업데이트
- mqtt
- 팀룸
- 엘라스틱서치 백업
- AWS
- 마리아
- backup
- real
- 브라우저 제어
- auto update
- AmazonMQ
- 2factor
- MariaDB Galera
- Redis
- elasticsearch mapping
- maria
- 네이트온
- electron
- 엘라스틱서치 복구
- bitbucket
- Restore
- puppeteer
- elasticsearch mapping change
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함