-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
axios와 cheerio로 노래 목록 가져오기
21.12.04 02:17 작성 조회수 403
0
제로초님 안녕하세요. 강사님의 'axios-cheerio 로 첫 크롤링하기 '편을 보고 직접 다뤄보고자 응용해보던 중, 원하는 결과가 나오지 않아 질문을 올리게 되었습니다.
저는 해당 사이트(네이버 바이브)에서 `.track_section .select_all .text_area .text`에 있는 총 곡 수를 받아와 `songsNum`이라는 변수에 저장하고, `songsNum`수만큼 반복문을 돌려 크롤링한 노래 제목과 아티스트 정보를 배열에 따로 저장하여, json 형식으로 제작하고자 합니다.
그러나 하단의 제가 작성한 코드에서 처럼 `$('.track_section .select_all .text_area .text').text();`나 `$('. track_section .text').text();`등을 통해 text값을 가져오려고 해도 값이 가져와지지 않습니다. 뿐만아니라, 노래 제목과 아티스트명을 `$(선택자).text()`를 이용해서 가져오려고 해도 전부 공백이 뜹니다.
nodemon을 돌리면서 console.log()로 값이 제대로 가져와지는지 확인하고 있는데, 아래의 사진처럼 계속 공백이 나옵니다.
소스코드
const fs = require('fs');
const axios = require('axios');
const cheerio = require('cheerio');
let vibeUrl = fs.readFileSync('./data/vibe.txt').toString();
let title = new Array();
let artists = new Array();
const crawler = async() => {
const response = await axios.get(vibeUrl);
if(response.status === 200) {
const html = response.data;
const $ = cheerio.load(html);
const songsNum = $('.track_section .select_all .text_area .text').text();
console.log(songsNum);
// for(let i = 0; i < songsNum; i++) {
// }
}
}
crawler();
혹시 선택자를 어떻게 이용해야 제가 원하는 값들을 가져올 수 있을지 여쭤보아도 될까요?
답변을 작성해보세요.
답변 1