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
'백엔드 > NodeJs' 카테고리의 다른 글
[NodeJs] Javascript로 엑셀 파일 생성 및 저장 불러오기 (1) | 2021.04.24 |
---|---|
[NodeJs] Passport 사용 설명 및 예제 (0) | 2021.04.23 |
[NodeJs / Express] 쿠키 삭제 (0) | 2021.04.12 |
[NodeJs] 노드몬 nodemon 을 활용한 Node.js 무중단 서비스 하기 (0) | 2021.04.01 |
[NodeJs] 쿠키 읽기 / 쓰기 (cookie read / write) [ javascript / http / client / server] (0) | 2021.03.31 |
댓글