Homework -3

DoongDoong·2022년 8월 15일
0

웹 개발일지

목록 보기
12/12

목표 : 지니뮤직의 1~50위 곡을 스크래핑 해보세요

지니뮤직 사이트
https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701


이렇게 나오면 완성

힌트:

0) 출력 할 때는 print(rank, title, artist) 하면 됩니다!

1) 앞에서 두 글자만 끊기! text[0:2] 를 써보세요!

2) 순위와 곡제목이 깔끔하게 나오지 않을 거예요. 옆에 여백이 있다던가, 다른 글씨도 나온다던가..
   파이썬 내장 함수인 strip()을 잘 연구해보세요!

숙제 결과

import requests
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=M&rtm=N&ymd=20210701', headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

# body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.number
# body-content > div.newest-list > div > table > tbody > tr:nth-child(2) > td.number

musics = soup.select('#body-content > div.newest-list > div > table > tbody > tr')

for music in musics:
    a = music.select_one('td.number')
    if a is not None:

        number = a.text[0:2].strip()
        # text[0:2]는 0~2번째 문자열을 출력하라는 뜻('문자열 일부 출력')

        title = music.select_one('td.info > a.title.ellipsis').text.strip()
        # .strip()은 ()안의 것을 지운다는 뜻 아무것도 안적은 채로 두면 공백이 사라짐

        artist = music.select_one('td.info > a.artist.ellipsis').text

        print(number, title, artist)
profile
둥둥의 개발일지

0개의 댓글