[Node.js] 웹 크롤링(Web Crawling)
특정 데이터가 필요한 경우 Node.js를 이용하여 웹 크롤링을 하면 쉽게 데이터를 추출할 수 있다.
설치 환경
- node.js
- npm
설치 모듈
- request
웹 페이지의 HTML문서를 그대로 가져오기 위한 모듈 - cheerio
HTML 문서를 파싱(parsing)하여 필요한 정보만을 가져올 수 있도록 도와주는 모듈, 제이쿼리 셀렉터를 사용할 수 있다.
작업 순서
- 원하는 디렉토리에 폴더 생성 후 js 파일 생성(crawling.js로 만들었음)
- 터미널에서 프로젝트 폴더로 진입
- package 생성(이름만 설정한뒤 모두 예스)
& npm init
- 필요 모듈 설치
$ npm install cheerio $ npm install request
- package.json 파일에 아래처럼 해당 모듈의 버전이 나타난다면 제대로 설치가 된 것이다.
"dependencies": { "cheerio": "^1.0.0-rc.2", "request": "^2.83.0" }
- 생성한 crawling.js 파일에 설치한 모듈을 불러준다.
var cheerio = require('cheerio'); var request = require('request');
- url 변수에 파싱할 주소를 입력하고, request 모듈을 이용하여 웹페이지를 로드한다.
var url = 'http://www.naver.com'; request(url, function (error, response, html){ var $ = cheerio.load(html); // 여기서 제이쿼리 셀렉터를 이용하여 원하는 정보를 가져올 수 있다. });
- 아래는 전체 코드이다. ```javascript var cheerio = require(‘cheerio’); var request = require(‘request’);
var url = ‘http://www.naver.com’;
request(url, function (error, response, html){ var $ = cheerio.load(html);
// 여기서 제이쿼리 셀렉터를 이용하여 원하는 정보를 가져올 수 있다.
console.log($('.naver_logo').text())
}); ```
References
Node.js로 멜론 순위 차트 데이터 파싱
[Node.js] node.js환경에서 웹 크롤링 하기(cheerio-httpcli)
[Node.js] 크롤링 DOM parsing ( request, cheerio, iconv 모듈 )