Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- allow_anonymouse
- datagridview 직접입력
- 서버동기화
- invalid data
- 공인IP
- pm2 설치
- timepicker
- mySQL_Replication
- mosquitto.conf
- setInterval clear
- transfer
- html #select #option #multiple
- DataGridView 직접 입력
- 맥 어드레스
- pm2 확인
- 데이터테이블 데이터 넣기
- AntDesign
- setInterval 중지
- pm2
- pm2 상태 확인
- Replication
- 1883
- DatePicker
- setInterval 정지
- pm2 시작
- c# datagridview 데이터 넣기
- setInterval 외부 정지
- mosquitto
- map이 undefined가 뜰 때
- listener 1883
Archives
- Today
- Total
개발 노트
NodeJS 크롤링 시작하기 본문
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
시나브로 자바스크립트시나브로 자바스크립트
'Node' 카테고리의 다른 글
Connection과 Connection Pool (0) | 2023.12.19 |
---|---|
require()와 module.exports (0) | 2023.12.19 |
Node js 시작하기 (0) | 2023.11.08 |
MQTT 메세지 받아서 DB에 저장 - 프로그램 시작 시 DB가 연결되지 않은 경우 (0) | 2023.09.25 |
MQTT 메세지 받아서 DB에 저장 (0) | 2023.09.25 |