nodejs 자체를 크롤링에 많이 이용하지만.
로그인 이후 페이지 컨텐츠의 크롤링등에는
casperjs 모듈을 많이 사용한다.
그 이유중에 하나가 PhantomJS 브라우져를 이용하여
유저의 액션을 유사하게 흉내낼 수 있기 때문이다.
예를 들어 로그인 이후 페이지에 대한 크롤링 등~
여기서는 티스토리 블러그의 관리자에 접속하여
로그인 이후 화면을 캡쳐해 본다.
----- node.js 가 설치되어 있다고 가정하고 진행한다. -----
1. 모듈 설치 및 환경설정
shell> npm install phantomjs shell> npm install casperjs // 심볼릭 링크의 경로는 각 서버 마다 다를 수 있음. shell> ln -s /usr/local/nodejs/node-v6.10.3-linux-x64/bin/phantomjs /usr/bin/phantomjs shell> ln -s /usr/local/nodejs/node-v6.10.3-linux-x64/bin/casperjs /usr/bin/casperjs |
2. Sample Code
var casper = require("casper"); var casper = require('casper').create({verbose: true, logLevel: "debug"}); casper.start(); casper.open('http://[개인 티스토리 블러그 주소]/admin/center/'); casper.wait(1000, function() { this.echo( "----------------------------------" ); this.echo("I've waited for 1 second."); this.echo( "----------------------------------" ); }); casper.then( function() { // this.echo( "----------------------------------\n\n" ); // this.echo( this.getElementsInfo('form#authForm') ); // this.echo( "\n\n----------------------------------\n\n" ); // this.echo( this.getHTML('form#authForm') ); // this.echo( "\n\n----------------------------------" ); this.fillSelectors('form#authForm', { 'input[name="loginId"]': '[티스토리 아이디]', 'input[name="password"]': '[티스토리 비밀번호]' }, true); } ); // 캡처하기 casper.then(function(){ casper.capture('capture.png', { top:0, left:0, width:1024, height:768 }); });
casper.run(); |
3. 기타
캡쳐이미지 한글깨짐 처리 |
http://blog.daum.net/2734/133 |
샘플코드 작성 참고 URL |
http://lyasee.tistory.com/2 |
'!!...nodejs' 카테고리의 다른 글
[nodejs] - ftp client 구현 샘플 (0) | 2022.10.05 |
---|---|
[nodejs] - puppeteer 환경 구성하기 (0) | 2020.08.25 |
[nodejs] - 웹 페이지 크롤링 샘플 01 - cheerio 모듈 이용 - (0) | 2017.05.29 |
[nodejs] - 정상설치확인 HTTP 접속 샘플코드 - (0) | 2017.05.26 |
[nodejs] - Centos 6.7 64-bit node.js 설치하기 (0) | 2017.05.26 |