PhantomJs와 CasperJs
웹사이트를 돌아다니며 정보를 긁어오는 프로그램을 작성할 때는 여러 가지 고려할 요소가많습니다. 로그인을 한 후의 데이터를 얻거나 봇이 접근하기 어렵게 짜여져 있거나 웹페이지가 렌더링된 다음의 데이터를 얻어야 하는 경우들이 그 예이죠.
그런 상황들을 쉽게 컨트롤 할 수 있게 하는 몇 가지 도구들이 있는데 그것들이 바로 PhantomJs와 CasperJs입니다.
PhantomJs는 화면이 없는 상태에서 커멘드 라인드로 사용하는 브라우저이고, CasperJs는 PhantomJs를 쉽게 쓸 수 있게 하는 라이브러리입니다.
PhantomJs는 렌더링 엔진으로 WebKit엔진을 사용하는데, 이 말은 애플의 사파리 브라우저와 거의 동일한 환경이라는 뜻입니다.
PhantomJs에서 할 수 있는 일에는 여러 가지가 있는데, 특정 URL로 접속했을 때의 스크린샷을 찍을 수도 있고 화면의 특정 엘리먼트를 마우스 클릭하는 이벤트를 실행할 수도 있습니다.
PhantomJs의 공식 웹사이트는 다음과 같습니다.
http://phantomjs.org/
CasperJs는 PhantomJs를 사용할 때 보다 쉽게 사용할 수 있도록 하는 라이브러리입니다.
CasperJs의 공식 웹사이트는 다음과 같습니다.
http://casperjs.org/
Node.js가 컴퓨터에 설치되어 있다고 가정하고 cmd를 켜서 다음의 명령을 입력합니다.
npm install -g phantomjs
npm install -g casperjs
이제 casperJs를 이용해서 간단한 화면 캡쳐 프로그램을 작성해 보겠습니다.
var casper = require('casper').create(); //casper 객체를 생성합니다.
casper.start();
casper.open('https://sidea510.blogspot.kr/'); //페이지를 엽니다.
casper.then(function(){
casper.capture('screenshot.png'); //화면을 캡쳐합니다.
});
casper.run(); //프로그램을 실행합니다.
프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
그런 상황들을 쉽게 컨트롤 할 수 있게 하는 몇 가지 도구들이 있는데 그것들이 바로 PhantomJs와 CasperJs입니다.
PhantomJs는 화면이 없는 상태에서 커멘드 라인드로 사용하는 브라우저이고, CasperJs는 PhantomJs를 쉽게 쓸 수 있게 하는 라이브러리입니다.
PhantomJs는 렌더링 엔진으로 WebKit엔진을 사용하는데, 이 말은 애플의 사파리 브라우저와 거의 동일한 환경이라는 뜻입니다.
PhantomJs에서 할 수 있는 일에는 여러 가지가 있는데, 특정 URL로 접속했을 때의 스크린샷을 찍을 수도 있고 화면의 특정 엘리먼트를 마우스 클릭하는 이벤트를 실행할 수도 있습니다.
PhantomJs의 공식 웹사이트는 다음과 같습니다.
http://phantomjs.org/
CasperJs는 PhantomJs를 사용할 때 보다 쉽게 사용할 수 있도록 하는 라이브러리입니다.
CasperJs의 공식 웹사이트는 다음과 같습니다.
http://casperjs.org/
Node.js가 컴퓨터에 설치되어 있다고 가정하고 cmd를 켜서 다음의 명령을 입력합니다.
npm install -g phantomjs
npm install -g casperjs
이제 casperJs를 이용해서 간단한 화면 캡쳐 프로그램을 작성해 보겠습니다.
var casper = require('casper').create(); //casper 객체를 생성합니다.
casper.start();
casper.open('https://sidea510.blogspot.kr/'); //페이지를 엽니다.
casper.then(function(){
casper.capture('screenshot.png'); //화면을 캡쳐합니다.
});
casper.run(); //프로그램을 실행합니다.
프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

네 좋은 정보 감사합니다
답글삭제