Showing
1 changed file
with
71 additions
and
8 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() => { | ||
| 20 | try{ | 19 | try{ |
| 21 | - return await axios.get(url_hiphop_us) | 20 | + return await axios.get(genre) |
| 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"); |
| 31 | 48 | ||
| 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