커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3주차 숙제
undefined주차
북마크
고*희
댓글
3
추천
0
조회수
16
조회수
16
답변 완료

안녕하세요, 3주차 숙제를 해결하는 중에 아래와 같이 코드를 짰는데 계속 50위 1개만 실행되어서 문의 드립니다.ㅜㅜ

(튜터님 해설을 같이 보니 다른 게 없는 것 같아 보여서요)



제 코드:


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')





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


for song in songs:
    title = song.select_one('td.info > a.title.ellipsis').text.strip()
    rank = song.select_one('td.number').text[0:2].strip()
    artist = song.select_one('td.info > a.artist.ellipsis').text





print(rank, title, artist)




실행 결과


/Users/yoonheekoh/Desktop/Sparta/pythonProject/venv/bin/python /Users/yoonheekoh/Desktop/Sparta/pythonProject/genie.py 
50 Off My Face Justin Bieber


종료 코드 0(으)로 완료된 프로세스






해설 코드:



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')


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


for tr in trs:
    title = tr.select_one('td.info > a.title.ellipsis').text.strip()
    rank = tr.select_one('td.number').text[0:2].strip()
    artist = tr.select_one('td.info > a.artist.ellipsis').text
    print(rank, title, artist)




확인 부탁 드립니다!!

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