커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
지니 뮤직 크롤링하면 19금 부분이 나옵니다.
undefined주차
북마크
정*욱
댓글
5
추천
0
조회수
32
조회수
32
답변 완료



19금 부분이 나오고 띄어쓰기도 엄청 되서

결과물이 이상하게 나옵니다.


19금 부분을 제외하고 출력하려면 어떻게 해야할까요?


전체캡처해 주시면, 튜터님들이 빠르게 상황을 상황을 이해할 수 있어요.

스파르타 즉문즉답

15번 peaches가 이상하게 나옵니다.



작성한 코드 및 에러 메세지

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(1) > td.info > a.title.ellipsis
#body-content > div.newest-list > div > table > tbody > tr:nth-child(15) > td.info > a.title.ellipsis > span
#body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.info > a.artist.ellipsis

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

for song in songs:
    number = song.select_one('td.number')
    songname = song.select_one('td.info > a.title.ellipsis')
    who = song.select_one('td.info > a.artist.ellipsis')

    if songname is not None:
        rank = number.text[0:2].strip()
        title = songname.text.strip().replace('19금','') 
        artist = who.text

        print(rank,title,artist)
     


#replace로 '19금' 글씨는 제거했지만 여전히 띄어쓰기가 가득한 채로 나옵니다.


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴