※ 스크래핑이란?
웹의 세계에서 흔히 말하는 '스크래핑'은 웹사이트에서 HTML 데이터를 수집하고, 특정 데이터를 추출, 가공하여 저장하는 것을 말한다. 단순히 웹사이트에서 HTML 파일을 다운로드만 하는 것이 아니라 그 HTML 파일의 각 요소들을 분석하는 과정을 포함한다.
■ cheerio-httpcli 모듈 설치
01. 우선 명령 커멘드 창을 열고 다음 명령을 실행하여 cheerio-httpcli을 설치한다.
> npm install -g cheerio-httpcli |
02. 정상적으로 설치가 되었다면 아래와 같은 결과가 나오는 것을 확인할 수 있다.
■ HTML 파일 다운로드
01. 이제 'cheerio-httpcli' 모듈을 사용해서, 웹 페이지를 내려받아 HTML 문서를 화면에 출력해보자 코드는 아래와 같다.
getpage.js |
// 모듈 로드 |
02. 우선 명령 커멘드 창을 열고 다음 명령을 실행하여 cheerio-httpcli을 설치한다.
> node getpage.js |
03. 출력결과는 아래와 같다.
■ HTML 파일에서 링크 추출
01. 이번에는 HTML에 링크된 URL 목록을 출력하는 프로그램을 만들어 보자.
위에서 작성한 프로그램을 수정하여 링크를 추출하는 코드를 추가한다.
showimage.js |
// 모듈로드 // fetch() 메소드의 콜백 함수를 지정하고 있는데 그 익명 함수의 두번째 인자로 $를 지정하였다. // 이를 통해 jQuery처럼 페이지의 특정 요소를 추출할 수 있게 된다. client.fetch(url, param, function(err, $, res) { // 사용할 $("img")의 경우 모든 <img>태그를 추출한다. // 이어서 each()메소드를 통해 추출한 각 요소들에 대해 지정한 함수를 수행한다. // 그 함수에서 추출한 각 요소의 텍스트 부분과 src 속성의 값을 콘솔에 출력한다. $("img").each(function(idx) { |
02. 이제 다시 커멘드 창에서 위에서 작성한 프로그램을 실행한다.
> node showlink.js |
03. 출력결과는 아래와 같다.
'Node.js > Node.js 웹 크롤링' 카테고리의 다른 글
[node.js] 웹 데이터 수집 ① (1) | 2017.05.19 |
---|