티스토리 뷰
.NPM
- NPM(Nodejs package manager)은 모듈 공유 관리를 위한 플랫폼
.NPM 초기화
- npm 을 활용하기 위해 npm init 으로 초기 세팅 필요
- npm init 작업이 끝나면 package.json 이라는 파일이 생성되는데, 이 파일은 모듈 의존성을 포함
.모듈 서칭
- NPM 홈페이지에서 사용할 모듈 검색(https://www.npmjs.com/)
.request 모듈 테스트
- 사라질..? 모듈이라서 request를 검색하면 나오진 않는다.(링크에서 확인)
- module page에 들어가면 친절하게 install 방법도 알려준다.
- 터미널에 npm i request를 입력하여 모듈 설치 (npm install request과 동일)
아래와 같이 설치해보자.
모듈을 설치하면 node_modules 디렉토리가 생성되면서 모듈에 관련된 파일들이 저장된다.
다양한 모듈을 사용하게 되면 node_modules에 저장되는 파일들도 많아지므로 용량이 커지고 무거워진다.
모듈을 사용하지 않을 때, node_modules 디렉토리를 지워줘도 무방하다.
package.json에 자신이 설치한 모듈의 정보가 모두 저장되어있어서
node_modules가 지워진 상태라면
npm install 로 그동안 설치했던 모듈들을 한꺼번서 다시 받을 수 있다.
.request 모듈 사용해기
- module page를 보면 기본적인 example이 나와있다.
간단하게 적용해보면
request한 페이지의 body 정보를 가져올 수 있다.
네이버 메인에는 데이터가 많아서 console에 데이터가 다라라라락 출력될 것이다..ㅋㅋ
1 2 3 4 5 6 | const request = require('request'); request('https://www.naver.com/', function (error, response, body) { console.error('error:', error); // Print the error if one occurred // console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received console.log('body:', body); // Print the HTML for the Google homepage. }); | cs |
기상청에서 날씨 데이터를 request 해보자.
마찬가지로 다라라라락 많은 데이터가 출력될 것이다.
1 2 3 4 5 6 | const request = require('request'); request('https://www.weather.go.kr/weather/forecast/mid-term-rss3.jsp', function (error, response, body) { var xml = body; console.log(body) }); | cs |
여기서 기상전망 데이터만 추출해보자.
원하는 데이터를 추출하기 위해서 태그를 잘 타고 들어가야 한다.
원하는 데이터가 어디에 있는지 우선 태그를 타고 들어가보자.
1 2 3 4 5 6 7 8 9 10 | const request = require('request'); var parseString = require('xml2js').parseString; request('https://www.weather.go.kr/weather/forecast/mid-term-rss3.jsp', function (error, response, body) { var xml = body; parseString(xml, function (err, result) { console.dir(result.rss.channel[0].item[0].description[0].header[0].wf[0]); }); }); | cs |
'Web' 카테고리의 다른 글
[JDBC] JAVA JDBC(select, insert, delete, update) (2) | 2020.10.22 |
---|---|
[Node.js] cheerio module 로 크롤링하기 (0) | 2020.06.23 |
[Node.js] Express Framework 사용하기 (0) | 2020.06.22 |
[Node.js] mySQL 연동 (0) | 2020.06.22 |
[Node.js] http 클래스를 활용한 기본 서버 구성 (0) | 2020.06.22 |