=> 어떤 큰 자료에서 원하는 정보만 가공하고 뽑아서 원하는 때에 불러올 수 있게 하는 것.
// 특정 url을 넣으면 그 url에 해당하는 페이지의 html 태그를 다 가지고옴
const axios = require("axios");
// 파싱을 쉽게 해주는 모듈
const cheerio = require("cheerio");
//keyword => 검색 키워드
const getHTML = async(keyword) => {
try{
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);
const $ = cheerio.load(html.data);
// item 부분만 다 가져와서 담음
const $courseList = $(".course_card_item");
let courses = [];
$courseList.each((idx, node) => {
const title = $(node).find(".course_title").text();
courses.push({
//:eq(0) => 첫번째 노드만 들고온다.
title : $(node).find(".course_title:eq(0)").text(),
instructor : $(node).find(".instructor").text(),
rating : $(node).find(".star_solid").css("width"),
price : $(node).find(".price").text(),
img : $(node).find(".card-image > figure > img").attr("src")
})
});
console.log(courses);
}
parsing("자바스크립트");
[ {
title: '하루만에 Cypress로 작성하는 자바스크립트 E2E 테스트 코드',
instructor: '메이커준',
rating: '97.77777777777779%',
price: '₩11,000',
img: 'https://cdn.inflearn.com/public/courses/327991/cover/e3589cbb-7502-4c72-a665-72ec33d59173/인프
런 썸네일.png'
},
{
title: '자바스크립트 제대로 배워볼래?',
instructor: '개발자의 품격',
rating: '98.46153846153847%',
price: '₩77,000',
img: 'https://cdn.inflearn.com/public/courses/326778/cover/fa701aa5-8e85-4c60-8bd0-32be8a67635b/3A9329DD-8AC3-44FA-AEAA-F981219DC5E2.png'
},
{
title: '자바스크립트 알고리즘 문제풀이(코딩테스트 대비)',
instructor: '김태원',
rating: '97.70114942528735%',
price: '₩66,000',
img: 'https://cdn.inflearn.com/public/courses/326377/cover/06b7fdbf-e58c-4289-b17d-bffddb67e999'
},
{
title: '입문자를 위한 자바스크립트 기초 강의',
instructor: '유노코딩',
rating: '100%',
price: '₩22,000₩17,600',
img: 'https://cdn.inflearn.com/public/courses/327871/cover/5da57e4f-7cf0-416d-baad-3bf7758eb725/327871-eng.png'
},
{
title: '풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]',
instructor: '잔재미코딩',
rating: '98.33333333333334%',
price: '₩71,500',
img: 'https://cdn.inflearn.com/public/course-326306-cover/4ea213de-f786-4af1-a9d0-b8932263885a'
},
{
title: '자바스크립트 ES6+ 심화',
instructor: '김영보',
rating: '96%',
price: '₩55,000',
img: 'https://cdn.inflearn.com/public/course-325633-cover/ececd36d-e3c5-49de-ac84-6bd44b8bb706'
},
{
title: '자바스크립트 머신러닝 TensorFlow.js',
instructor: '김영보',
rating: '92%',
price: '₩132,000',
img: 'https://cdn.inflearn.com/public/courses/324920/course_cover/7e7eb0b1-f56e-422a-b423-0464f1711feb/kyb-tensorFlow.jpg'
},
{
title: '자바스크립트 ES6+ 기본',
instructor: '김영보',
rating: '96.27906976744185%',
price: '₩55,000',
img: 'https://cdn.inflearn.com/public/courses/324642/course_cover/3416cd43-b75d-422d-bc0f-ff6c9388f5ba/kyb_es6.png'
},
{
title: '자바스크립트 : 기초부터 실전까지 올인원',
instructor: '코딩알려주는누나',
rating: '0%',
price: '₩81,400',
img: 'https://cdn.inflearn.com/public/courses/328238/cover/f3821bcd-cac4-470a-b3bc-edc8d699a604/328238-eng.png'
},
{
title: '자바스크립트 비기너: 튼튼한 기본 만들기',
instructor: '김영보',
rating: '95.22935779816514%',
price: '₩44,000',
img: 'https://cdn.inflearn.com/public/course-324235-cover/12a6aceb-1c38-4ce1-b50c-ab9d32e43edd'
},
{
title: '자바스크립트 언어 기본 - javascript',
instructor: 'Egoing Lee',
rating: '97.67584097859327%',
price: '무료',
img: 'https://cdn.inflearn.com/wp-content/uploads/js.png'
},
{
title: '자바스크립트 중고급: 근본 핵심 논리',
instructor: '김영보',
rating: '94.47368421052632%',
price: '₩55,000',
img: 'https://cdn.inflearn.com/public/courses/324398/course_cover/97632ccf-eed2-4e51-baec-ef3fb81c9b38/kyb_advanced.jpg'
},
{
title: '모던 자바스크립트 딥다이브 스터디',
instructor: '정재남',
rating: '100%',
price: '무료',
img: 'https://cdn.inflearn.com/public/courses/327974/cover/3b014384-8b3e-4f66-a4de-a94ffff11f58/Modern Javascript Deep Dive.png'
},
{
title: '오픈 소스 자바스크립트 React 프로그래밍 입문 Part.1',
instructor: '유용한IT학습',
rating: '88.57142857142858%',
price: '₩38,500₩0',
img: 'https://cdn.inflearn.com/public/courses/328018/cover/fb6c713e-bbfb-4dca-b50f-e71f97cbd313/328018-eng.png'
},
{
title: '빠르게 배우는 ES6 스킬과 자바스크립트 비동기 프로그래밍',
instructor: '김형태',
rating: '91.53846153846153%',
price: '₩9,900',
img: 'https://cdn.inflearn.com/wp-content/uploads/ES6-1-2.jpg'
},
{
title: '오픈 소스 자바스크립트 React 프로그래밍 입문 Part.3',
instructor: '유용한IT학습',
rating: '80%',
price: '₩38,500₩0',
img: 'https://cdn.inflearn.com/public/courses/328022/cover/896d1cc2-9c2e-4b75-ad58-add567f5d365/328022-eng.png'
},
{
title: '오픈 소스 자바스크립트 React 프로그래밍 입문 Part.2',
instructor: '유용한IT학습',
rating: '88%',
price: '₩29,700₩0',
img: 'https://cdn.inflearn.com/public/courses/328021/cover/d2cd7bec-a069-4bbd-a425-ac41c32a9f74/328021-eng.png'
},
{
title: '자바스크립트 입문자를 위한 강의',
instructor: 'JeongTaeHyun',
rating: '0%',
price: '₩27,500',
img: 'https://cdn.inflearn.com/public/courses/326561/cover/77b01d30-3e19-4314-ad6e-4f9282ebfe8a'
},
{
title: '함수형 프로그래밍과 JavaScript ES6+',
instructor: '유인동',
rating: '97.90123456790124%',
price: '₩55,000',
img: 'https://cdn.inflearn.com/wp-content/uploads/es6_8.jpg'
},
{
title: 'Javascript ES6+ 제대로 알아보기 - 중급',
instructor: '정재남',
rating: '97.64705882352942%',
price: '₩49,500',
img: 'https://cdn.inflearn.com/wp-content/uploads/jjn_es62.jpg'
},
{
title: '실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발',
instructor: '김정환',
rating: '95.88235294117646%',
price: '₩44,000',
img: 'https://cdn.inflearn.com/wp-content/uploads/vuejsandpure.png'
},
{
title: '제주코딩베이스캠프 Code Festival: JavaScript 100제',
instructor: '제주코딩베이스캠프',
rating: '91.61290322580646%',
price: '₩55,000',
img: 'https://cdn.inflearn.com/public/courses/324470/course_cover/93df16b3-38c5-4265-b00a-208075d2f135/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-100%EC%A0%9C%28%EC%88%98%EC%A0%95%29.png'
},
{
title: '함수형 프로그래밍과 JavaScript ES6+ 응용편',
instructor: '유인동',
rating: '99.38461538461539%',
price: '₩44,000',
img: 'https://cdn.inflearn.com/public/courses/324019/course_cover/9bdc6818-f3d4-49f4-a0bf-1165e3f726b5/es6_2.png'
},
{
title: 'Javascript ES6+ 제대로 알아보기 - 초급',
instructor: '정재남',
rating: '98.6%',
price: '₩35,200',
img: 'https://cdn.inflearn.com/wp-content/uploads/es6-1.jpg'
}
]