반응형

기상청의 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
반응형



[자바스크립트와 NODE.JS를 이용한 웹 크롤링 테크닉]은 자바스크립트의 기본을 알고 있는 독자나 프로그래밍 중급자를 대상으로 한다. 언어와 상관없이 초급에서 중급 수준의 독자가 읽으면 큰 도움이 될 것이다. 게다가 웹을 대표하는 언어인 자바스크립트를 사용하므로 코드를 이해하기 쉽고 수정하기에도 쉽다.


예제가 다양하기 때문에 이것 저것 응용하기에도 수월하다.

 

 

 

========================================  오탈자 정보  ==========================================

현재까지 발견된 위 책의 오탈자 정보와 오류, 그리고 보다 매끄러운 문장을 위해 수정한 내용을 안내해드립니다. 번역과 편집 시에 미처 확인하지 못하고 불편을 끼쳐드려 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 재쇄 시에 반영하도록 하겠습니다. 


이외의 오탈자 정보를 발견하시면 옮긴이(reap.as.i.sow@gmail.com)나 출판사(readers.jpub@gmail.com)로 연락주시면 고맙겠습니다.



최종수정일자: 2017년 3월 20일

2쇄본 오탈자


267쪽 '실제 프로그램'절 첫 번째 줄(김*훈 독자님 제보)

그러면 실제 프로그램의 코드를 살펴보자. 여기서도 우리가 만들었던 mecab-mod.js를 활용한다. 


==


그러면 실제 프로그램의 코드를 살펴보자. 여기서는 우리가 만들었던 mecab-mod.js를 약간 수정한 mecab-mod-sync.js를 사용한다. 

5장 2절에서 만든 mecab-mod.js와의 차이점은 함수의 끝에서 콜백 함수를 호출하지 않고 바로 결과를 반환하는 점이다. mecab-mod.js의 마지막에서 callback(res);라고 되어 있는 부분을 

return res;라고 바꿔주면 된다. 



최종수정일자: 2017년 1월 18일

1쇄본 오탈자


59쪽 두 번째 문단 두 번째 줄

실행 디렉터리가 ‘__dirname"라는 변수에 ==> 실행 디렉터리가 __dirname라는 변수에


112쪽 맨 마지막 코드문에서

casper.evaluate(함수, [, 파라미터1[, 파라미터2[, ...]]]) ==> casper.evaluate(함수 [, 파라미터1[, 파라미터2[, ...]]])


118쪽 맨 아래

* 표 제목인 '선택자끼리의 관계를 지정하는 서식'은 다음 페이지 첫 번째 표의 제목입니다.

119쪽 세 번째 표 설명 칸에서

* 'n번째'를 'n 번째'로 모두 통일


124쪽 절 제목 부분의 '주요 도구와 라이브러리' 상자에서

Electorn ==> Electron


200쪽 맨 마지막 문단

if 구문은 조건식이 true일때 블록을 실행하는 반면, unless구문은 조건식이 false인 경우에 블록을 실행하다. ==> if 구문은 조건식이 true일 때 블록을 실행하는 반면, unless 구문은 조건식이 false인 경우에 블록을 실행한다.


252쪽 첫 번째 코드문에서

execSync(cmd, opt); 열에 ※4 추가


284쪽 밑에서 두 번째 문단 두 번째 줄

...자신의 휴대전화'에서 SMS인증을 통해 ==> ...자신의 휴대전화'에서 SMS 인증을 통해


323쪽 첫 번째 줄
‘YouTube Data API’를 클릭하고. ‘사용 설정’ 버튼을 클릭한다. ==> ‘YouTube Data API’를 클릭하고 ‘사용 설정’ 버튼을 클릭한다.

398쪽 맨 위의 3, 4번 항목
학습 데이터(. svm)를 작성 ==> 학습 데이터(.svm)를 작성
학습시키고 모델(. model)을 작성 ==> 학습시키고 모델(.model)을 작성

398쪽 밑에서 두 번째 줄
이들은 ‘. gz’ 형식으로 압축되어 있으므로 ==> 이들은 ‘.gz’ 형식으로 압축되어 있으므로

418 두 번째 표 '의미' 열 첫 번째 칸
기점(x1, y1)을 설정 ==> 기점 (x1, y1)을 설정

463쪽
* 해당 페이지상의 모든 'D3.JS'를 'D3.js'로 바로잡습니다.



출처: http://jpub.tistory.com/654 [제이펍의 참 똑똑한 2비트 책 이야기]

반응형

+ Recent posts