본문 바로가기
KDT/과제

[파이썬, Python] 지니뮤직 Top200 크롤링하기!

by coding-choonsik 2023. 9. 4.
728x90
반응형
SMALL

과제. 

 

지니차트>실시간 - 지니

AI기반 감성 음악 추천

www.genie.co.kr

 

import time
data = []
for i in range(1, 5):
    url = f'https://www.genie.co.kr/chart/top200?ditc=D&ymd=20230601&hh=13&rtm=Y&pg={i}'
    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
    request = requests.get(url, headers=header)
    soup = BeautifulSoup(request.text, 'html.parser')
    table = soup.find('table', {'class':'list-wrap'})
    titles = table.find_all('a', {'class': 'title ellipsis'})
    artists = table.find_all('a', {'class': 'artist ellipsis'})

    for j in range(len(titles)):
        title = titles[j].text.strip()
        artist = artists[j].text.strip()
        # print('{0:3d}위 {1} - {2}'.format((i - 1) * 50 + j + 1, artist, title))
        dic = {'rank': (i - 1) * 50 + j + 1, 'title': title, 'artist': artist}
        # print(dic)
        data.append(dic)
    # 다음 페이지로 이동하기 전에 1초간 대기
    time.sleep(1)

 

import pandas as pd
df = pd.DataFrame(data, index=None)
df

 

 

df.to_excel('genie_chart Top200.xlsx')

 

 

😎 결과 깃허브

 

GitHub - KoYesung/GenieMusic: 지니뮤직 차트 Top 200 크롤링하기

지니뮤직 차트 Top 200 크롤링하기. Contribute to KoYesung/GenieMusic development by creating an account on GitHub.

github.com

 

 

728x90
반응형
LIST