[크롤링] 1. 음원 정보 수집하기
by Cori국내 여러 음원 서비스(멜론, 지니, 벅스)에서 노래 순위를 수집하고, 통합
* 해당 포스팅에서 다루고 있는 모든 내용은 다음 서적을 참고하였습니다.
0. 기본 환경 설정
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome('./chromedriver.exe')
url = 'http://www.melon.com/chart/index.htm' # 이 주소를 변경하여 멜론, 지니, 벅스 음원 정보 수집
driver.get(url)
html = driver.page_source # 접속한 웹 페이지의 HTML 다운로드
soup = BeautifulSoup(html, 'html.parser') # BeautifulSoup으로 읽음
1. 엑셀 파일에 저장할 데이터 설정, 위치 탐색 후 배열에 저장
song_data = [] # 나중에 엑셀 파일로 저장할 리스트
rank = 1
songs = soup.select('table > tbody > tr')
for song in songs:
title = song.select('div.rank01 > span > a')[0].text
singer = song.select('div.rank02 > a')[0].text
song_data.append(['Melon', rank, title, singer])
rank += 1
음원 사이트에서 '사이트 명, 음원순위, 음원제목, 가수 이름'을 수집한다. 해당 데이터를 탐색하는
구체적인 방법은 여기서 다루지 않을 생각이므로 궁금하신 분들은 구글링 부탁드립니다.
2. song_data 배열을 이용해, 데이터프레임 생성
import pandas as pd
columns = ['site', 'rank', 'title', 'singer']
pd_data = pd.DataFrame(song_data, columns = columns)
pd_data.head()
pd_data.info() # 잘 가져왔는지 정보 확인
3. 크롤링 결과를 엑셀 파일로 저장
pd_data.to_excel('./melon.xlsx',index=False)
이렇게 한 음원 사이트의 실시간 음원 정보를 크롤링 하는 작업에 대해 살펴보았고, 다른 음원 사이트 데이터를 크롤링하는 작업도 위의 내용과 다르지 않아, 여기서는 생략 .. 전체 코드가 궁금하신 분들은 포스팅에 참고한 책 (직장인을 위한 데이터 분석 실무 with 파이썬) 저자분의 github를 참고 부탁드립니다.
* 크롤링을 추가로 하는 것이 귀찮은 분들은 댓글로 메일주소 남겨주시면 나머지 파일들도 보내드릴게요.
4. 수집한 데이터 파일들을 병합
import pandas as pd
excel_names = ['./melon.xlsx', './bugs.xlsx', 'genie.xlsx']
appended_data = pd.DataFrame()
for name in excel_names:
pd_data = pd.read_excel(name)
appended_data = appended_data.append(pd_data)
appended_data.info()
5. 통합한 크롤링 결과를 엑셀 파일로 저장
appended_data.to_excel('./total.xlsx', index=False)
이렇게 음원 사이트의 음원 정보를 수집하고, 수집한 데이터들을 하나의 파일로 통합하는 과정에 대해 살펴보았다.
'AI > Data Analysis' 카테고리의 다른 글
[Elastic Search] 데이터 검색 (0) | 2021.10.25 |
---|---|
[크롤링] 외국인 관광객 데이터 다루기 (2) (0) | 2021.09.07 |
[크롤링] 3. 외국인 관광객 데이터 다루기 (1) (0) | 2021.08.30 |
[크롤링] 2. 유튜브 랭킹 데이터 다루기 (0) | 2021.08.27 |
HTML 태그 탐색하기 (0) | 2021.08.24 |
블로그의 정보
코딩하는 오리
Cori