본문 바로가기
백엔드/NodeJs

[NodeJs] Javascript를 활용한 크롤링 (데이터수집)

by jinwanseo 2021. 4. 14.
728x90

  NodeJs / Javascript 를 활용한 크롤링 (데이터 수집)

 

1. nodejs와 npm 을 설치하자 

nodejs.org/ko/ <- 접속하여 다운 받고 설치

(노드Js를 설치하면 npm는 자동 설치된다)

 

2. NodeJs를 이용하여 데이터 크롤링을 하려면

우선 axios와 cheerio라는 npm의 설치가 필요하다.

터미널 명령어를 통하여 설치하도록 하자

//terminal을 통해 npm install (axios cheerio 설치)
npm install axios cheerio

 

3. 자신의 에디터를 켜고 프로젝트 폴더내 main.js 파일 생성 후 아래 코드 입력

const axios = require('axios');
const cheerio = require('cheerio');

const getHTML = async(keyword)=>{
    keyword = encodeURI(keyword);
    try {
        return axios.get(`https://kin.naver.com/search/list.nhn?query=`+keyword);
    }catch(err){
        console.log(err);
    }
}

const getData = async(keyword) =>{
    const html = await getHTML(keyword);
    const $ = cheerio.load(html.data);

    const contentList = $('#container .basic1 li');
    let titles = [];

    contentList.each((idx,elem)=>{
        titles.push($(elem).find('dl dt a').text());
    });

    titles.forEach(item => console.log(item));
}

getData('원하는 키워드 입력');

 

4. 키워드 지식인 top 1-10위까지 제목을 확인하다.

위 코드를 응용하여 웹 데이터를 수집해보자.

 

  개발하면서 느낀점

개인적으로 cheerio를 써보면서

jquery 문법과 비슷한 함수들로 인해

친근하면서도 살짝 거부감이 들었지만

단순 반복 데이터 수집 업무에는

확실히 도움이 될것 같다.

 

 

728x90

댓글