Node
NodeJS 크롤링 시작하기
알 수 없는 사용자
2023. 11. 8. 09:57
nodejs 서버 생성 후
axios cheerio 라이브러리 설치
npm install axios cheerio
본 게시물에서는 inflearn 사이트를 크롤링하는 것으로 한다
inflearn.js 파일생성
// 특정 url 입력시 페이지에 있는 html 코드를 모두 가져옴
const axios = require('axios');
// 가지고 온 html을 파싱
const cheerio = require('cheerio');
const getHTML = async(keyword) => {
try {
// encodeURI를 사용하지않으면 한글 입력시 오류발생
return await axios.get('https://www.inflearn.com/courses?s=' + encodeURI(keyword));
} catch(err) {
console.log(err);
}
}
const parsing = async (keyword) => {
const html = await getHTML(keyword);
console.log(html);
}
parsing('자바스크립트');
위의 코드는 html 데이터를 전부 가져온것이기 때문에 중간에 필터링을 해줄 필요가 있다.
다음과 같은 코스 카드들에서 제목을 추출해 보자

다음은 수정된 parse 함수이다
const parsing = async (keyword) => {
const html = await getHTML(keyword);
// 필터링
const $ = cheerio.load(html.data);
// 추출하고 싶은 html 데이터 클래스명 기입
const $courseList = $(".course_card_item");
let courses = [];
// courseList 는 현재 .couse_card_item 클래스명을 가진 dom을 전부 가져온것이기 때문에 리스트이다
// 아래 탐색하는 함수에서 node 즉 하나의 course_card_item 에서 제목을 추출해본다
$courseList.each((i,node)=> {
const title = $(node).find(".course_title").text();
console.log(title);
});
}
parse를 실행하면 다음과 같은결과가 나온다
더보기
진짜! 자바스크립트(Javascript) - 기초부터 고급까지진짜! 자바스크립트(Javascript) - 기초부터 고급까지
[코드캠프] 훈훈한 Javascript[코드캠프] 훈훈한 Javascript
시나브로 자바스크립트시나브로 자바스크립트