커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3주차 마지막 숙제를 잘 이해 못하겠습니다.
undefined주차
북마크
이*석
댓글
5
추천
1
조회수
12
조회수
12
답변 완료

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

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


다른 건 이해했는데 크롤링에서 trs = soup.select 를 치고 뒤에 copy selector로 복사해왔는데 저는 숙제답안 코드랑 다른 코드가 있습니다.

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

이 코드인데 제가 잘못 가져 온 건가요? 그리고 밑에 코드도 질문이 있는데

   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)


분명 전체 순위를 가져오는 건데 왜 왜 selcet가 아닌 select_one인지 모르겠습니다.

스파르타 즉문즉답





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=20230101',headers=headers)


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


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


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
댓글 알림
나의얼굴