커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
이런 경우는 어떻게 해결하나요?
undefined주차
북마크
김*준
댓글
3
추천
0
조회수
13
조회수
13
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


웹개발 종합반 3주차 과제입니다.

보다시피 15위 노래의 제목에는 19금 아이콘이 들어가 있고 그것까지 텍스트로 출력해서 곡 제목에 빈공간이 엄청나게 많이 생겼습니다.

span만 제외해버리면 깔끔하게 나올것같은데 어떻게 해야할까요?

혹시나 싶어서.strip()의 괄호안에 span, text, str 등등을 넣어봤는데 에러만 뜨더라구요



스파르타 즉문즉답





작성한 코드 및 에러 메세지

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(2)

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


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


for tr in trs:

    rank = tr.select_one('td.number').text[0:2].strip()

    title = tr.select_one('td.info > a.title.ellipsis').text.strip()

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

    print(rank, title, artist)


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