2022년 스파르타코딩

데이터 분석 EP.01

KIMYOUNGIN 2022. 6. 4. 18:16
반응형

목표

  1. HTML 문서의 개념에 대해서 이해한다.
  2. 구글 Colab 사용방법을 익힌다. (아나콘다랑 비슷함)
  3. 태그의 형식에 대해서 이해한다.
  4. 크롤링을 위한 패키지 BeautifulSoup4의 사용법을 이해한다.

파이썬 기초문법을 공부!

데이터분석에 필요한 파이썬 패키지 "판다스"에 대해 알아보자!

판다스는 파이썬 데이터 분석을 위한 필수 패키지 중 하나이고, 표(테이블) 형태로 

데이터 읽고, 연산하고, 저장하기 위해 사용된다.

import pandas as '사용자가 정한 이름'을 사용해서 패키지를 사용할수있다.

사용자 지정 이름 보단 import pandas as pd 로 관례적으로 사용함 

지니 뮤직을 크롤링 해보았다.

import requests
import pandas as pd
from bs4 import BeautifulSoup

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'# 크롤링 방지하는거 속이고 들어가는거
data = requests.get('https://www.genie.co.kr/chart/top200?ditc=D&ymd=20220103&hh=13&rtm=N&pg=1',headers=headers) # 리퀘스트로 사이트를 긁어옴

soup = BeautifulSoup(data.text, 'html.parser'# 지니 뮤직의 html을 분석하겠다. 그래서 텍스르를 soup 변수에 담는다. 
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')  # 지뮤사이트에서 f12로 분석(어디가 순위,랭크,가수인지) 한 후 셀렉터 복사를 통해 trs에 담는다

for tr in trs: # trs는 현재 리스트 형태로 다 담겨있다. 뒤에 변수를 추가하면서 각각의 정보를 얻을수있다. / for 문으로 tr변수에 하나씩 담아 콤마 셀렉트_원을 통해 하나씩 붙인다. 그후 text로 내용, strip을통해 공백제거
    title = tr.select_one('td.info > a.title.ellipsis').text.strip()
    rank = tr.select_one('td.number').text[0:2].strip()  # [0:2] 리스트는 0 번쨰부터 읽으니까 첫번째를 원하면 이렇게 작성하고 이것을 반복하므로 숫자 1,2,3,4,5,6 -- 으로 뽑을수있다.
    artist = tr.select_one('td.info > a.artist.ellipsis').text.strip()
    print(rank, title, artist)

 

1 겨울잠 아이유 (IU)
2 회전목마 (Feat. Zion.T & 원슈타인) (Prod. by Slom) sokodomo
3 Counting Stars (Feat. Beenzino) BE'O (비오)
4 리무진 (Feat. MINO) (Prod. by GRAY) BE'O (비오)
5 취중고백 김민석 (멜로망스)
6 ELEVEN IVE (아이브)
7 드라마 아이유 (IU)
8 사랑은 늘 도망가 임영웅
9 만남은 쉽고 이별은 어려워 (Feat. Leellamarz) (Prod. by TOIL) 베이식 (Basick)
10 다정히 내 이름을 부르면 경서예지 & 전건호
11 strawberry moon 아이유 (IU)
12 정거장 아이유 (IU)
13 신호등 이무진
14 눈이 오잖아 (Feat. 헤이즈) 이무진
15 문득 BE'O (비오)
16 Stay The Kid LAROI & Justin Bieber
17 불협화음 (Feat. AKMU) (Prod. by GRAY) Mudd the student
18 너 아이유 (IU)
19 흰눈 먼데이 키즈 (Monday Kiz)
20 쉬어 (Feat. MINO) (Prod. by GRAY) 아넌딜라이트 (Anandelight) & Unofficialboyy & BE'O (비오) & 지구인 & Mudd The Student
21 Savage aespa
22 러브레터 아이유 (IU)
23 Next Level aespa
24 매일 크리스마스 (Everyday Christmas) 다비치
25 OHAYO MY NIGHT 디핵 (D-Hack) & PATEKO
26 Wake Up (Prod. by 코드 쿤스트) 개코 & 아우릴고트 (OUREALGOAT) & SINCE & 안병웅 & Tabber & 조광일
27 바라만 본다 MSG워너비 (M.O.M)
28 너를 생각해 주시크 (Joosiq)
29 낙하 (With 아이유) AKMU (악뮤)
30 너의 모든 순간 성시경
31 Hey Mama (Feat. Nicki Minaj & Bebe Rexha & Afrojack) David Guetta
32 Celebrity 아이유 (IU)
33 My Universe Coldplay & 방탄소년단
34 Bad Habits Ed Sheeran
35 네가 없는 밤 (Feat. ASH ISLAND) (Prod. by GRAY) BE'O (비오)
36 Butter 방탄소년단
37 Still I Love You 토요태
38 라일락 아이유 (IU)
39 모든 날, 모든 순간 (Every day, Every Moment) 폴킴
40 고백 멜로망스 (MeloMance)
41 Weekend 태연 (TAEYEON)
42 헤픈 우연 헤이즈 (Heize)
43 Permission to Dance 방탄소년단
44 Dynamite 방탄소년단
45 Step Back GOT the beat
46 밤하늘의 별을 (2020) 경서
47 찰나가 영원이 될 때 (The Eternal Moment) 마크툽 (Maktub)
48 시간을 거슬러 (낮에 뜨는 달 X 케이윌) 케이윌 (K.Will)
49 이제 나만 믿어요 임영웅
50 Tiny Riot Sam Ryder

이렇게 나타나는것을 확인할수있었다.

반응형