자신의 일은 스스로하자

[웹 크롤링] #3 파이썬으로 멜론 차트 TOP 100 데이터 프레임 생성, CSV저장 / pandas [스마트인재개발원] 본문

웹 크롤링

[웹 크롤링] #3 파이썬으로 멜론 차트 TOP 100 데이터 프레임 생성, CSV저장 / pandas [스마트인재개발원]

힐파르 사막 삼계탕 2021. 6. 13. 23:13
728x90

이전에 수집한 멜론 차트 TOP 100에 대한 데이터 프레임을 생성하겠습니다. 

 


2021.06.07 - [웹 크롤링] - [웹 크롤링] #2 멜론 TOP100 수집 / BeautifulSoup [스마트인재개발원]

 

[웹 크롤링] #2 멜론 TOP100 수집 / BeautifulSoup [스마트인재개발원]

✔ 멜론 차트 TOP 100을 수집해 보겠습니다. import requests as req from bs4 import BeautifulSoup as bs 먼저 Requests와 BeautifulSoup 모듈을 import 해줍니다. BeautifulSoup은 HTML 및 XML 문서를 구문 분..

oneself.tistory.com

수집하는 방법은 이전 포스팅을 봐주세요.

 

먼저 데이터 프레임을 생성시키기위해 pandas를 import해줍니다.

import pandas as pd

 

이제 태그를 제외하고 순수한 텍스트만 담아줄 리스트 생성해줍니다.

song_list = [] # 노래제목(텍스트) 리스트
singer_list = [] # 가수명(텍스트) 리스트
rank_list = [] # 순위 리스트

for i in range(len(song)):
    
    song_list.append(song[i].text.strip())
    singer_list.append(singer[i].text.strip())
    rank_list.append(i+1)

 

리스트를 print하면 이런 식으로 순수한 텍스트만 담겨 있는 것을 볼 수 있습니다.


 

info함수에 딕셔너리로 저장해주고 

info = {"rank" : rank_list,"singer":singer_list, "title":song_list}

저장된 info를 DataFrame으로 변경해줍니다. 변경한 데이터 프레임을 music으로 저장해줍니다.

music = pd.DataFrame(info)

이대로만 출력하면 인덱스도 출력되고 rank_list도 출력되기 때문에 인덱스를 수정해줍니다.

 

0부터시작되는 인덱스를 없애고 DataFrame내의 열을 이용하여  새로운 인덱스를 설정해 줍니다. 

music.set_index('rank', inplace = True )

사용형식은 ▶ DataFrame.set_index( 'keys' , inplace = True)

keys는 인덱스로 하려는 열의 레이블을 입력받습니다.

inplace는 원래 객체를 변경할지 결정합니다.

 

이후 music을 출력하면.

이렇게 멜론에 있던 멜론차트 목록이 크롤링되어 DataFrame형식으로 출력된 것을 볼 수 있습니다.

 

수집된 정보를  보기 좋게 csv로 저장해 줍니다.

music.to_csv("music.csv", encoding = "")

csv로 저장시 한글이 깨질 수 있기 때문에 encoding도 같이 진행해 줍니다.

 


실행 시키면 이렇게 csv파일이 저장된 것을 볼 수 있습니다.

 

스마트인재개발원에서 진행된 수업입니다.

www.smhrd.or.kr

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr

 

728x90