반응형

이번에는 티스토리에 로그인하여 댓글을 확인하는 프로그램을 만들어보고자 한다.

 

티스로티 관리 페이지 주소는 http://블로그주소/admin/center  로 로그인하지 않은 상황에서 관리 페이지에 접속하면 아래와 같다.

 

여기에서 소스 분석을 하기 위해 개발자 도구를 열어보자. (F12 누르자)

아래와 같이 나오는데 아이디 입력창을 찍어보면 input name = loginId가 나온다. 이런 방식으로 찾아보자.

 

 

 

. form 태그의 ID는 authForm

. 아이디 입력 창의 name은 loginId

. 비밀번호 입력창의 name은 password

 

CasperJS에는 Form 태그에 값을 입력해서 전송할 수 있는 fill() 인터페이스가 있다.

 

Casper.fill(css 선택자, 값 객체, [, Submit 여부])

. CSS 선택자 : Form의 CSS 선택자

. 값 객체 : name과 value 속성 지정

. Submit 여부 : true일 경우, 전송까지 수행

 

그러면 티스토리에서는 어떻게 써야할까?

 

Casper.fill ("#authForm", {loginid: "ID"}, password:"password"}, true);

 

참 Comment를 가져오기 위해 evaluate() 메소드를 만들었는데 이것도 살펴보자.

 

casper.evaluate(함수[, 파라미터,[, 파라미터[, ..]]])

 

. 함수 : 페이지 내에서 수행하고 싶은 자바스크립트 함수 객체

. 파라미터 : 함수에 넘기고 싶은 파라미터

 

자 이렇게 만든 것을 한번 전체 소스를 봐보자...

 

소스 다운로드 : login.js

 

 

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
32
33
34
35
36
37
var casper = require('casper').create({verbose: true, logLevel: "debug"});
 
// URL 및 로그인 정보 변수
var url = "http://nickoo.tistory.com/admin/center/";
var id = "";
var password = "";
 
casper.start();
 
casper.open(url);
 
// 아이디와 비밀번호 입력
casper.then(function() {
   casper.fill( "#authForm"
    { 
      loginId: id, 
      password:password
    }, true);
});
 
casper.then(function(){
    var getComment = function(){
      return document.querySelector("#blogInfo > ul > li:nth-child(3) > span.day").innerText;
    };
 
    // 결과 로그로 출력 
    console.log("새 댓글 수 : " + this.evaluate(getComment));
});
 
casper.then(function(){        
    var getGuestBook = function(){                
      return document.querySelector("#blogInfo > ul > li:nth-child(5) > span.day").innerText;
    };
    console.log("새 방명록 수 : " + this.evaluate(getGuestBook));
});
 
casper.run();
cs

 

 

결과 :

 

 

 

왜 이런 결과가 나오냐....후우...새 댓글과 새 방명록이 없기 때문이다....방문자수가 일 평균 60명이지만...단 한명도 댓글을 달지 않고 눈팅만 하고 간다는 건데...ㅜㅜ

아무래도 블로그 품질이 저하거나 볼품없어서 그런거 같다...

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 화면 캡쳐 프로그램  (0) 2017.04.08
웹사이트 제목 표시하는 소스코드  (0) 2017.04.08
CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
반응형

 

CasperJS 화면 캡쳐 프로그램

 

 

CasperJS로 화면 캡쳐하는 프로그램으로 이것도 소스가 마찬가지로 간단하다.

따로 설명한 것은 없고 주석으로 설명을 달아놓았으니, 누구라도 이해하기 쉬울 것이다.

 

소스 다운로드 : screenshot.js

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// CasperJS 화면 캡쳐 프로그램
 
// Casper 객체 생성 
var casper = require('casper').create();
 
// 시작
casper.start();
 
// 페이지 열기 
casper.open('http://nickoo.tistory.com');
 
// 스크린 샷 수행
casper.then(function() {
  casper.capture("screenshot.jpg");
});
 
// 실행 
casper.run();
 
cs

 

 

실행하는 방법 :

 

 

 

 

결과 :

 

 

 

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

티스토리에 로그인하는 방법  (1) 2017.04.09
웹사이트 제목 표시하는 소스코드  (0) 2017.04.08
CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
반응형

PhantomJS와 CasperJS를 사용하여 웹사이트에 접속 후 그 사이트의 제목을 표시하는 프로그램을 해보자.

 

소스가 워낙 간단해서 설명도 필요없다.

 

소스 다운로드 : getTitle.js

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var TARGET_URL = "http://nickoo.tistory.com";
 
// CasperJS 객체 생성
var casper = require('casper').create();
 
// 웹사이트 열기
casper.start(TARGET_URL, function()
{
// 타이틀 가져오기
   this.echo(casper.getTitle());
});
 
// 실행
casper.run();
 
cs

 

CasperJS를 사용했기 때문에 node getTitle.js가 아닌 casperjs getTitle.js로 입력해줘야 정상적으로 동작한다. 

 

 

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

티스토리에 로그인하는 방법  (1) 2017.04.09
CasperJS 화면 캡쳐 프로그램  (0) 2017.04.08
CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
반응형

CasperJS란?

 

PhantomJS를 조금 더 세밀하게 컨트롤 할 수 있는 기능들을 묶어놓은 라이브러리라고보면 된다.

 

Download URL : http://casperjs.org/

 

 

이것도 마찬가지로 커맨드창에서 아래와같이 입력하면된다.

 

npm install -g casperjs

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 화면 캡쳐 프로그램  (0) 2017.04.08
웹사이트 제목 표시하는 소스코드  (0) 2017.04.08
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
HTML 파일에서 링크 추출  (0) 2017.03.27
반응형

PhantomJS란?

 

PhantomJS는 인터페이스가 없는 headless 브라우저다. 웹사이트의 소스코드를 메모리에 불러오고 페이지의 자바스크립트를 실행하지만 그래픽을 전혀 렌더링 하지 않으며, 파이썬의 셀레니움 라이브러리와 함께 사용하면 자바스크립트와 쿠키, 헤더, 스크린샷 등 강력한 웹 크롤러를 만들 수 있게 된다.

 

Download URL : http://phantomjs.org/download.html

 

 

Node.JS에서는 사실상 다운을 받을 필요없이 커맨드창에 아래와 같이 명령어를 입력하면 된다.

 

npm install -g phantomjs

 

 

반응형
반응형

기상청의 RSS를 파싱에 'cheerio-httpcli' 를 사용하여 뿌려주는 방법

 

다운로드 : weather.js

 

RSS URL : http://web.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109

 

 

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
// 기상청 기상예보 RSS(cheerio이용) for Node.js
 
// 기상 RSS
var RSS = "http://web.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109";
 
// 모듈 로드
var client = require('cheerio-httpcli');
 
// RSS 다운로드
client.fetch(RSS, {}, function(err, $, res) {
  if (err) { 
    console.log("error"); return
  }
 
  var city = $("location:nth-child(1) > city").text();
 
  // 필요한 항목을 추출해서 표시
  $("location:nth-child(1) > data").each(function(idx) {
 
    var tmEf = $(this).find('tmEf').text();
    var wf = $(this).find('wf').text();
    var tmn = $(this).find('tmn').text();
    var tmx = $(this).find('tmx').text();
    
    console.log(city + " " + tmEf + " " + wf + " " + tmn +"~" + tmx);
  });
});
 
cs

 

 

결과 

 

 

 

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
HTML 파일에서 링크 추출  (0) 2017.03.27
node.js 특정 페이지 출력하는 코드  (0) 2017.03.27
윈도우에서 'Node.js'와 'NPM'을 설치하기  (0) 2017.03.25
반응형

 HTML에 링크된 URL 목록을 출력하는 프로그램입니다.

 

코드는 아래와 같으며 $("a")로 되어 있는 부분은 <a> 태그를 추출하여 href 속성의 값을 콘솔에 출력합니다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var client = require('cheerio-httpcli');
 
var url = "http://nickoo.tistory.com";
var param = {};
 
client.fetch(url, param, function(err, $, res) { 
    if (err) { console.log("error"); return; }
    
    $("a").each(function(idx) {
        var text = $(this).text();
        var href = $(this).attr('href');
        console.log(text+":"+href);
    });
});
cs

 

 

 

결과물 :

 

 

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
node.js 특정 페이지 출력하는 코드  (0) 2017.03.27
윈도우에서 'Node.js'와 'NPM'을 설치하기  (0) 2017.03.25
반응형

명령어 프롬프트(cmd)에서

 

npm init
npm install cheerio-httpcli


인스톨을 한 후에

 

아래와 같은 예제 입력후 파일 저장 (ex. download.js)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var client = require('cheerio-httpcli');
 
var url = "http://nickoo.tistory.com";
var param = {};
 
client.fetch(url, param, function(err, $, res){
  if(err){console.log("error:", err); return;}
 
  var body = $.html();
  console.log(body);
 
});
 
 
 
cs

 

 

이렇게 한 후에 node download.js 를 명령어 프롬프트에 입력하면 HTML문서를 화면에 출력합니다.

 

 

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
HTML 파일에서 링크 추출  (0) 2017.03.27
윈도우에서 'Node.js'와 'NPM'을 설치하기  (0) 2017.03.25
반응형

1. Node.js 설치

 

노드js의 윈도우 버전은 인스톨러(Windows Installer, .msi)를 제공하기 때문에 원터치로 설치가 가능합니다!

 

노드js 홈페이지로 가서 설치하려는 윈도우에 맞게 (32bit or 64bit) 설치 파일을 다운받습니다.

 

URL : nodejs.org - Downloads

 

 

 

설치가 끝나면 명령 프롬프트(cmd) 를 열어서 아래와 같이 입력해봅니다. 문제가 없으면 정상적으로 설치가 된겁니다.

 

node.js 버전 확인 : node -v    

npm 버전 확인 : npm -v

 

 

2. 업데이트 하기

자..여기서 설치는 다 했지만 npm 최신 버전으로 업그레이드를 해줘야 합니다.

 

우선 관리자모드로 명령 프롬프트(cmd) 혹은 파워셀을 실행해주세요.

 

그리고 아래 명령어를 차례로 입력해주세요.

 

1. Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force

 

2. npm install --global --production npm-windows-upgrade

 

3. npm-windows-upgrade

 

3번을 할때는 자신이 원하는 버전을 선택해주시면 해당 버전으로 변경이 됩니다.

저는 2017년 3월 24일자 최신 버전인 4.4.4를 선택했습니다.

 

 

 

참고 URL : https://github.com/felixrieseberg/npm-windows-upgrade

 

이제 Node.js와 npm 최신버전 업그레이드가 끝났습니다.

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

CasperJS 설치  (0) 2017.04.07
PhantomJS 설치  (0) 2017.04.07
XML/RSS 파싱에 cheerio-httpcli 이용  (0) 2017.04.06
HTML 파일에서 링크 추출  (0) 2017.03.27
node.js 특정 페이지 출력하는 코드  (0) 2017.03.27

+ Recent posts