course/spartacoding

[웹개발 종합반] 3주차 (5) 3주차 과제

hjkim0502 2021. 11. 2. 19:54

지니 뮤직 사이트 1~50위 곡 스크래핑

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=D&ymd=20200403&hh=23&rtm=N&pg=1',headers=headers)

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

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

for song in songs:
    rank = song.select_one('td.number').text.strip().rstrip('유지하강상승new').rstrip('123456789').strip()
    title = song.select_one('td.info > a.title.ellipsis').text.strip()
    singer = song.select_one('td.info > a.artist.ellipsis').text.strip()
    print(rank, title, singer)

strip()으로 string에서 특정 문자열 제거 가능

  • strip(): 전달된 문자를 오른쪽, 왼쪽에서 차례대로 제거, default는 공백 제거
  • rstrip(): 전달된 문자를 오른쪽에서 차례로 제거
  • lstrip(): 전달된 문자를 왼쪽에서 차례로 제거
  • 전달된 문자와 동일하지 않는 문자가 나올때까지 제거