Showing
1 changed file
with
72 additions
and
9 deletions
... | @@ -15,29 +15,92 @@ const url_newage = "https://www.melon.com/genre/song_list.htm?gnrCode=GN1800#par | ... | @@ -15,29 +15,92 @@ const url_newage = "https://www.melon.com/genre/song_list.htm?gnrCode=GN1800#par |
15 | const url_classic = "" | 15 | const url_classic = "" |
16 | const url_jazz = "https://www.melon.com/genre/jazz_list.htm?gnrCode=GN1700#params%5BgnrCode%5D=GN1700¶ms%5BdtlGnrCode%5D=GN1701¶ms%5BorderBy%5D=POP¶ms%5BsteadyYn%5D=&po=pageObj&startIndex=1" | 16 | const url_jazz = "https://www.melon.com/genre/jazz_list.htm?gnrCode=GN1700#params%5BgnrCode%5D=GN1700¶ms%5BdtlGnrCode%5D=GN1701¶ms%5BorderBy%5D=POP¶ms%5BsteadyYn%5D=&po=pageObj&startIndex=1" |
17 | 17 | ||
18 | - | 18 | +const getHTML = async(genre) => { |
19 | -const getHTML = async() => { | 19 | + try{ |
20 | - try{ | 20 | + return await axios.get(genre) |
21 | - return await axios.get(url_hiphop_us) | ||
22 | }catch(err) { | 21 | }catch(err) { |
23 | console.log(err); | 22 | console.log(err); |
24 | } | 23 | } |
25 | } | 24 | } |
25 | +// parsing() 함수는 한가지 파라미터를 가집니다. 파라미터에 각 장르이름 변수를 넣으면 각 장르별 5곡이 리턴됩니다. | ||
26 | +// 장르별 변수명은 다음과 같습니다. | ||
27 | +// url_ballad | ||
28 | +// url_hiphop_kr | ||
29 | +// url_hiphop_us | ||
30 | +// url_dance | ||
31 | +// url_rock_kr | ||
32 | +// url_rock_us | ||
33 | +// url_pop | ||
34 | +// url_RNB_kr | ||
35 | +// url_RNB_us | ||
36 | +// url_indie | ||
37 | +// url_newage | ||
38 | +// url_jazz | ||
39 | +// parsing_exception()은 한가지 파라미터를 가집니다. 그 인자는 'snow' 또는 'classic'으로 해야 합니다. | ||
40 | +// 'classic' 이나 'snow'를 인자로 주면 각각 배열에 저장되어있는 노래 중 랜덤으로 5개가 출력됩니다. | ||
41 | +// classic | ||
42 | +// snow | ||
26 | 43 | ||
27 | -const parsing = async() => { | 44 | +const parsing = async(genre) => { |
28 | - const html = await getHTML(); | 45 | + const html = await getHTML(genre); |
29 | const $ = cheerio.load(html.data); | 46 | const $ = cheerio.load(html.data); |
30 | const $TitleList = $("div.ellipsis.rank01"); | 47 | const $TitleList = $("div.ellipsis.rank01"); |
48 | + | ||
31 | 49 | ||
32 | let Titles = []; | 50 | let Titles = []; |
33 | - $TitleList.each((inx, node) => { | 51 | + $TitleList.each((index, node) => { |
34 | const title = $(node).find("a").text(); | 52 | const title = $(node).find("a").text(); |
35 | - console.log(title); | 53 | + Titles[Titles.length] = title; |
36 | }); | 54 | }); |
37 | 55 | ||
56 | + let Titles5 = []; | ||
57 | + for(i = 0; i <= 4; i++){ | ||
58 | + Titles5.push(Titles[i]) | ||
59 | + }; | ||
60 | + | ||
61 | + console.log(Titles5); | ||
62 | + return(Titles5); | ||
38 | } | 63 | } |
39 | 64 | ||
40 | -parsing(); | 65 | +const parsing_exception = (genre) => { // 'snow' 또는 'classic' 에만 작동합니다. |
66 | + snow = ['눈사람', '십이월 이십오일의 고백', '첫 눈', '첫눈처럼 너에게 가겠다', '겨울사랑', '눈꽃', '사월의 눈', '코끝에 겨울', '눈이 내린다', '새겨울', '공드리', | ||
67 | +'눈이 오네', '이번 겨울', 'I Miss You', '나의 옛날 이야기', '너의 모든 순간', '내 생에 아름다운', '너를', '눈의꽃', '야생화']; | ||
68 | + | ||
69 | + classic = ['G선상의 아리아', '트로이메라이', '무언가', '백조', '세레나데', '울게하소서', '카발레리아 루스티카나', '사랑의 인사', '보칼리제', '뱃노래', | ||
70 | +'안단테 칸타빌레', '월광의 소나타', '미뉴엣 G장조', '엘리제를 위하여', '로망스']; | ||
71 | + | ||
72 | + function shuffleArray(array) { | ||
73 | + array.sort(() => Math.random() - 0.5); | ||
74 | + } | ||
75 | + shuffleArray(snow); | ||
76 | + shuffleArray(classic); | ||
77 | + | ||
78 | + let snow5 = []; | ||
79 | + let classic5 = []; | ||
80 | + for(i = 0; i <= 4; i++){ | ||
81 | + snow5.push(snow[i]) | ||
82 | + }; | ||
83 | + | ||
84 | + for(i = 0; i <= 4; i++){ | ||
85 | + classic5.push(classic[i]) | ||
86 | + }; | ||
87 | + | ||
88 | + if(genre == 'snow'){ | ||
89 | + console.log(snow5); // console.log() 는 값 시험용으로 우선 넣어두었습니다. | ||
90 | + return(snow5); | ||
91 | + }else if(genre == 'classic'){ | ||
92 | + console.log(snow5); // | ||
93 | + return(classic5); | ||
94 | + }else{ | ||
95 | + console.log("input value error(The input value is snow or classic)"); | ||
96 | + } | ||
97 | +} | ||
98 | + | ||
99 | +parsing(url_ballad); | ||
100 | +parsing_exception('snow'); | ||
101 | + | ||
102 | + | ||
103 | + | ||
41 | 104 | ||
42 | 105 | ||
43 | 106 | ... | ... |
-
Please register or login to post a comment