Apple Music의 상위 100곡을 JSON 파일로 추출하는 Python 프로그램 만들기
Apple Music의 상위 100곡을 JSON 파일로 추출하는 Python 프로그램 만들기
안녕하세요! 오늘은 Python과 Selenium을 사용하여 Apple Music의 상위 100곡을 추출하고, 이를 JSON 파일로 저장하는 방법에 대해 알려드리겠습니다.
필요한 라이브러리 설치하기
먼저, 프로그램을 실행하기 위해 필요한 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 필요한 라이브러리를 설치합니다.
1
pip install selenium pandas
Selenium을 사용하여 웹 페이지에 접속하기
Selenium은 웹 페이지를 자동으로 제어하기 위한 라이브러리입니다. 먼저, Selenium을 import하고 Chrome 브라우저를 설정합니다.
1
2
3
4
5
6
import time
from selenium import webdriver
import pandas as pd
driver = webdriver.Chrome()
Apple Music 페이지에 접속하기
Apple Music에서 상위 100곡이 있는 페이지로 이동합니다.
1
driver.get("https://music.apple.com/kr/playlist/%EC%98%A4%EB%8A%98%EC%9D%98-top-100-%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD/pl.d3d10c32fbc540b38e266367dc8cb00c")
페이지 로드 대기하기
페이지가 완전히 로드될 때까지 기다립니다.
1
time.sleep(2)
곡 정보 추출하기
페이지에서 순위, 제목 및 아티스트를 추출합니다.
1
2
3
rankings = driver.find_elements_by_css_selector('[data-testid="track-ranking"]')
titles = driver.find_elements_by_css_selector('[data-testid="track-title"]')
artists = driver.find_elements_by_css_selector('.svelte-154tqzm [data-testid="click-action"]')
데이터 정제하기
추출한 데이터를 리스트에 저장하고, 필요한 경우 공백을 제거합니다.
1
2
3
rankingList = [rank.text for rank in rankings]
titleList = [title.text for title in titles]
artistList = [artist.text for artist in artists if artist.text.strip() != '']
데이터프레임으로 변환하기
추출한 데이터를 데이터프레임으로 변환합니다.
1
2
3
4
5
chart_df = pd.DataFrame({
"Rank": rankingList,
"Title": titleList,
"Artist": artistList
})
JSON 파일로 저장하기
데이터프레임을 JSON 파일로 저장합니다.
1
chart_df.to_json("appleMusic100.json", force_ascii=False, orient="records")
브라우저 종료하기
작업이 완료되면 Chrome 브라우저를 종료합니다.
1
driver.quit()
전체 정리!!
필요한 라이브러리를 가져옵니다. Chrome 브라우저를 설정하고 Apple Music 페이지에 접속합니다. 페이지가 로드될 때까지 2초를 기다립니다. 페이지에서 곡의 순위, 제목 및 아티스트를 추출합니다. 추출한 데이터를 JSON 형식으로 저장합니다. 이 코드를 이해하고 실행하기 위해서는 Python 및 필요한 라이브러리들을 설치해야 합니다. 그리고 Chrome 브라우저와 함께 사용되는 웹 드라이버도 필요합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import time
from selenium import webdriver
import pandas as pd
# Chrome 브라우저를 설정합니다.
driver = webdriver.Chrome()
# Apple Music의 상위 100곡이 있는 페이지로 이동합니다.
driver.get("https://music.apple.com/kr/playlist/%EC%98%A4%EB%8A%98%EC%9D%98-top-100-%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD/pl.d3d10c32fbc540b38e266367dc8cb00c")
# 페이지가 로드될 때까지 2초 기다립니다.
time.sleep(2)
# 곡의 순위, 제목, 아티스트를 추출합니다.
rankings = driver.find_elements_by_css_selector('[data-testid="track-ranking"]')
titles = driver.find_elements_by_css_selector('[data-testid="track-title"]')
artists = driver.find_elements_by_css_selector('.svelte-154tqzm [data-testid="click-action"]')
# 추출한 데이터를 리스트에 저장합니다.
rankingList = [rank.text for rank in rankings]
titleList = [title.text for title in titles]
artistList = [artist.text for artist in artists if artist.text.strip() != '']
# 데이터프레임으로 변환합니다.
chart_df = pd.DataFrame({
"Rank": rankingList,
"Title": titleList,
"Artist": artistList
})
# JSON 파일로 저장합니다.
chart_df.to_json("appleMusic100.json", force_ascii=False, orient="records")
# 브라우저를 종료합니다.
driver.quit()
이제 이 코드를 실행하면 Apple Music의 상위 100곡이 JSON 파일로 저장할 수 있게 됩니다.
This post is licensed under CC BY 4.0 by the author.
